its_over_for_chlop 2022-11-10 20:31:52 +0
Jaki jest najlepszy toolset do ci/cd?

1. Chcę robić build i deploy statycznej strony po każdym mergu commita. Czyli typowe budowanie strony webowej napisanej w angularze i wgranie na S3 AWS.

2. Chcę zrobić deployment backendu #aws napisanego w #nodejs z użyciem #serverless.

3. Chcę robić build i testowanie firmware'u.

Mam wytypowanych kilka kandydatów do CI/CD. Nie chcę mieć maca na którym chodzi jenkins. Co byście polecili?

Github Actions #githubactions
#Azure devops

#programowanie #cicd #gitlab #devops
Gennwat 2022-11-10 20:45:23 +5
@its_over_for_chlop: do czegoś tak prostego nie ma znaczenia czy wybierzesz github actions czy gitlab CI, wybierz jedno z tych, tam gdzie trzymasz/trzymacie kod
its_over_for_chlop [OP] 2022-11-11 00:53:54 +3
@Gennwat: @MialemNieWracac: @tos-1_buratino: @Gomusss:

Ostatecznie wybrałem Github do trzymania kodu. Napisałem sobie kilka pipelinów pod Github Actions, które do sprzężyłem z AWS za pomocą OIDC. Nie mam nigdzie trzymanych secretów i o nic nie muszę się martwić. Deploy startowego projektu angularowego kosztuje 1m 53s łącznie z testami, a zmiany są widoczne chwilkę później pod adresem www. Coś pięknego. Dzięki za pomoc i dobre słowo.
Część porad jak lokalny runner Github Actions postaram się wdrożyć w robocie. Super sprawa
Sibu 2022-11-10 20:52:17 +2
@its_over_for_chlop:

Gitlab jako repo dla kodu i Gitlab CI dla CI/CD. Ale github actions + githuba to w zasadzie to samo takze bierze co Tobie pasuje
Gomusss 2022-11-10 22:08:37 +2
@its_over_for_chlop: W Gitlabie nie musisz placić jeśli postawisz swojego runnera, a jest przyjemniejszy niz Jenkins
MialemNieWracac 2022-11-11 00:22:49 +2
@tos-1_buratino: przecież jenkins to jest mega archaik, nie rozumiem jak można go polecać w 2022, tym bardziej gdy kolega robi dosyć proste i łatwe do zdeployowania rzeczy
4191727801 2022-11-10 20:59:32 +1
@its_over_for_chlop: bitbucket - masz tam pipeliny itp. U mnie w firmie mamy bitbucket + jenkins (postawiony lokalnie, testy, buildy) + sonar cloud (pokrycie testami, zduplikowany kod, statyczna analiza kodu). To by bylo na tyle jesli chodzi o testy, repo i code quality. Co do deployu kodu to terraform jest spoko - nie jest latwy, ale raz ogarniesz i zycie jest prostsze
its_over_for_chlop [OP] 2022-11-10 21:01:57 +1
@4191727801: dzięki ale nie chcę lokalnie nic mieć dlatego Jenkins odpada
4191727801 2022-11-10 21:05:44 +1
@its_over_for_chlop: bitbucket na 100% pozwala zbudowac caly "lancuch" od kodu do deploy'a - wiem tylko ze placisz ze czas budowania itp To mi sie srednio podoba.
W firmie mamy jenkins bo od dawna byl uzywany + taniej wychodzi miec vmk'i i tam stawiac jenkinsy (master/slave) niz placic za czas i moc obliczeniowa
Gomusss 2022-11-10 22:20:58 +1
@its_over_for_chlop: Co do zamiany, to było najlepsze co mnie spotkało. Utrzymywanie Jenkinsa z pluginami jest mocno irytujące
Gomusss 2022-11-10 22:49:42 +1
@its_over_for_chlop: Co do puntków 2 i 3 to bym użył dockera, co do 1 to raczej shell
MialemNieWracac 2022-11-11 01:03:31 +1
@its_over_for_chlop: W ogóle jeżeli chciałbyś wejść jeszcze poziom wyżej z abstrakcją, to polecam AWS Amplify do hostingu backendu + frontendu + CI/CD. W ostatnich 1-2 latach zrobili wszystko na tyle spoko, że da się to wszystko wyklikać z poziomu UI i głównie musisz połączyć klocki i wskazać, gdzie masz kod. Do projektów prywatnych i PoC bardzo się to sprawdza

Jest to odpowiednik Firebase/Supabase, ale jeżeli chcesz mieć backend ale nie chcesz mieć GraphQL to raczej nie polecam, wtedy samemu trzeba stawiać backend z CDK/Serverless Frameworkiem
MialemNieWracac 2022-11-11 01:09:13 +1
@its_over_for_chlop: tam jest wtedy zupełnie inaczej, amplify wtedy zastępuje Ci cały IaC framework czyli w tym przypadku Serverless framework idzie do kosza i wszystko robisz w ekosystemie Amplify

Ale no jako że robisz RESTowe API to nie polecam, bo to głównie do Graphqla, więc w sumie potraktuj to jako ciekawostkę, może przyda się przy zabawie z GQL kiedyś xd
its_over_for_chlop [OP] 2022-11-10 22:15:32 +0
@Gomusss: super opcja. Jenkins jest chyba trochę archaiczny już. W firmie może zamienimy gitlaba na jenkinsa
its_over_for_chlop [OP] 2022-11-10 22:16:00 +0
@Gomusss: gdybym chciał odpalić runnera na M1 pro (mac studio) to jaki CICD bedzie najszybszy?
Gomusss 2022-11-10 22:19:09 +0
@its_over_for_chlop: Kwestia jak chcesz uruchomić stronę. Czy w dockerze czy lokalnie na serwerze
its_over_for_chlop [OP] 2022-11-10 22:24:48 +0
@Gomusss: strona statyczna bedzie serwowana prosto z awsS3
t.....o 2022-11-11 00:14:57 +0
@its_over_for_chlop:
Jak jenkins ci śmierdzi to przy tych wynalazkach będziesz płakał chcąc zrobić cokolwiek customowego.
t.....o 2022-11-11 00:45:20 +0
@MialemNieWracac:
To tylko narzędzia. Ale facet ma działający setup na Jenkinsie i zamiast go przenieść z lokalnego maca na vps kombinuje i szuka dziury w całym. Zmarnuje tylko czas na ustawianie nowej zabawki która będzie robiła to samo.

Ale jak już się bawić to kupić własnego vps do developerki, ustawić git hooki i skrypty do budowania, deployu itp. To daje duże możliwości zrobienia czegoś jak naprawdę chcesz i często jest szybsze niż kopanie się z warstwą pośrednią jaką są jenkinsy, gitlaby, githuby.
MialemNieWracac 2022-11-11 00:58:39 +0
@tos-1_buratino: tak zerknąłem na cały temat jeszcze raz na szybko i nie widzę, żeby gdzieś było coś o gotowym setupie Jenkinsa

Ale jak już się bawić to kupić własnego vps do developerki, ustawić git hooki i skrypty do budowania, deployu itp. To daje duże możliwości zrobienia czegoś jak naprawdę chcesz i często jest szybsze niż kopanie się z warstwą pośrednią jaką są jenkinsy, gitlaby, githuby.

To co opisujesz jest właśnie mnóstwem zabawy i potencjalnych problemów, z narzędziami typu Github Actions definiujesz tylko obraz, na którym ma działać runtime i komendy, które ma odpalić. Nie musisz się przejmować runnerami i wszystkim co jest niżej niż twój skrypt do deploymentu

Kupowanie VPS to dopiero brzmi archaicznie ( ͡° ͜ʖ ͡°)
its_over_for_chlop [OP] 2022-11-11 01:05:31 +0
@MialemNieWracac: Nie wiem jakby miał działać hosting frontendu na Amplify skoro potrzebuję tylko odpalić skrypt "serverless deploy" i on ma już zasetpuwać ApiGateway z Lambda handlerami
its_over_for_chlop [OP] 2022-11-11 01:10:25 +0
@MialemNieWracac: Chcę mieć właśnie serverlessa żeby z poziomu code review wyłapać co mi chcą napsuć w architekturze (żeby nie dało się nic wyklikać z poziomu aws console).