Kiedy przyszedłem do projektu, release przez CI/CD trwało 60 min

Kiedy odchodziłem trwało to tylko 15 minut

Kiedy powróciłem po roku przerwy - teraz zajmuje 2,5h


#devops #programowanie #monorepo

fe948a14-10fd-4860-bf9b-a4a303a9cf64

Komentarze (22)

@Deykun nie prawda ;( Chodzi o ideę.

Jak wchodziłem, był cypress. No to zoptymalizowałem go by działał horyzontalnie. Podzielony był na workery

Później przepisali to do PlayWright - i działa po kolei.

To co tam macie w tym CI/CD? U mnie tylko build dockera -> push do docker huba-> deploy

Reszta rzeczy jak np. testy, analiza statyczna, linty mam ustawione na merge request

@def 

Ja w diffle jak był tylko polski miałem z 10k plików i jak kopiowało każdy osobno to build potrafił trwać pond 40 minut. Jak zacząłem je pakować do .zip i rozpakowywać na miejscu skróciło do minuty. Dzisiaj przy 6 językach to pewnie ten upload by trwał z 5h. dx


Najłatwiej chyba tak nabić jak ktoś nieogranie i zrobi coś podobnego kopiując node_modules, to nawet na tym samym kompie się długo kopiuje plik po pliku. dx

@def package-lock.json nie jest do kontroli cache, tylko do pewnosci ze przetestowane paczki zostana zainstalowane.


Blokuje wersję paczek po prostu

@Klopsztanga chodzi mi o to, że używam tego pliku jako klucz cache, wrzucamy go w gita i w CI robimy npm ci

@Klopsztanga zależy co robicie i jak robocie ale jak docker tam leci to możesz sobie layery zrobić mądrze w docker i odpalać build dind, tym sposobem cała warstwa z modules i bin się przeniesie do nowego builda a budujesz tylko zmiany. Co do testów w njs to u nas skończyło się na przepisaniu sorry cypress na swój i wszystko nadal hula w parallel.

@Felonious_Gru continuous integration / continuous deployment. W skrócie to automat, który odpala się kiedy programista wrzuca zmiany w kodzie. Ten automat te zmiany testuje, generuje metryki i tworzy paczki gotowe do uruchomienia, często również wdraża zmiany na środowisko testowe / produkcyjne.

@Felonious_Gru w sumie zajebiście wygodne i, o ile działa szybko i stabilnie to programiści bardzo to lubią, bo dostarcza natychmiastowy feedback odnośnie tego, czy się coś spieprzyło. W innym wypadku taki feedback dostarczy Ci klient, a to już takie przyjemne nie jest.

Zaloguj się aby komentować