Wpis z mikrobloga

#programowanie #javascript #frontend #devops

No elo

Porozmawiajmy o CI/CD pipeline dla frontendowych applikacji. Załóżmy, że mam sobie jakąs applikacje typu React, Angular, która wykorzystuje 3rd party API i kompiluje się do jednego pliku html, css oraz js + assety.

Chcę wiedziec jaki pipeline mają porządne aplikacje frontendowe.

1. Pisze kod
2. Probuje zacommitowac zmiany
3. Przed commitem z automatu leci pre-hook, ktory odpali npm test, czyli testy jednostkowe, integracyjne, jak fail to nie zacommituje.
4. Jak commit sie uda, to leci push do githuba/gitlaba/bitbucket
5. Tam uruchamia sie kolejny pipe, jak kod dotrze do zdalnego repozytorium, w jakis sposob jenkins kompiluje caly source kod z src/ do dist/
6. znowu lecą testy jednostkowe, integracyjne?
7. aplikacja jest deployowana na zdalny serwer, np testing
8. testy end-user np. selenium?
9. po zakonczonych testach recznie jest odpalany kolejny krok - deploy na produkcje

Tak to wyglada mniej-wiecej?

Bo do tej pory robie dla siebie tak, ze puszczam testy jednostkowe, robie build lokalnie ktory nie jest w .gitignore, wypycham to na gitlaba, a potem puszczam taska Ansible, ktory zaktualizuje z gitlaba repozytorium na serwerze testowym/produkcji czyli po prostu ssh production i git pull origin z gotowym juz buildem i nginx restart
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

3. Przed commitem z automatu leci pre-hook, ktory odpali npm test, czyli testy jednostkowe, integracyjne, jak fail to nie zacommituje.


@Melcma: Czyli co, tylko jeden duży commit na koniec całego zadania?
  • Odpowiedz
@Kajetan8: nie, zle napisalem

odpalam feature branch, robie swoje commity, kiedy robota skonczona to wysylam ten branch na zdalne repozytorium zeby zrobic pull request, i wtedy co, co commit powinny sie testy jednostkowe odpalac, czy przed pushem? czyli pre-commit-hook czy pre-push-hook?
  • Odpowiedz
Nie ma różnicy czy to FE czy BE, mechanizm jest podobny, przykładowo robię tak:

1. commit
2. push do GitHub / Bitbucket
3. Travis CI (jeśli GH) lub Pipelines (jeśli BB) - testy, budowanie etc.
4. Push obrazu do Docker Registry (Docker Hub, Azure Container Registry itp.) - sam obraz buduje się wcześniej na wspomnianym build serwerze z odpowiednim tagiem w zależności od brancha.
  • Odpowiedz
  • 0
@Melcma testy na hooku to trochę nie ta epoka. Testy muszą być po stronie serwera, lokalnie niby możesz sobie skonfigurować jak lubisz ale to raczej dodatek a nie element flow
  • Odpowiedz