Witam
Czy jest w Gitlabie możliwość lokowania całego pileline w taki sposób by runner wykonał wszystkie kroki z danego pipeline i dopiero zabrał się za kolejny. Potrzebuję to ponieważ mam rozbite kroki stawiania środowiska testowego, sam krok testów i krok zwijania środowiska testowego. Dochodzi do sytuacji gdzie włącza się kro stawiania środowiska w pipeline pierwszym potem w drugim krok zwijania środowiska a potem z pierwszego uruchamiają się testy. Dochodzi wtedy do sytuacji gdzie testy próbują się uruchomiś na nieistniejącym środowisku.
Jak zablokować pipeline?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 81
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Silesia/Marki
- Postów: 5550
A można spytać po co rozbijałeś to na trzy osobne pipeliny?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1135
Można, w dokumentacji są też przykłady https://docs.gitlab.com/ee/ci/yaml/index.html#triggerstrategy
- Rejestracja: dni
- Ostatnio: dni
- Postów: 81
Ponieważ to jest jedna odnoga tego pipeline. Mam kilka środowisk i tylko na środowisko dev chcę stawiać w reszcie środowisk nie potrzebuję tego a testy są parametryzowane i mogą uderzać do wielu środowisk.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 10227
Masteratom napisał(a):
Ponieważ to jest jedna odnoga tego pipeline. Mam kilka środowisk i tylko na środowisko dev chcę stawiać w reszcie środowisk nie potrzebuję tego a testy są parametryzowane i mogą uderzać do wielu środowisk.
Typowy X/Y. Chciałeś skipnąć stage stawiania i składania, dla niektórych środowisko (co trzeba było zrobić conditional stage'ami), wpadłeś na pomysł że rozbijesz to na osobne pipe-line'y (co było złym pomysłem), znlalazłeś z tym problem, i teraz pytasz o Twoje potencjalne rozwiązanie, zamiast faktyczny problem.
To co mówił @KamilAdam jest poprawne - nie powinieneś tego rozbijać na osobne pipeline'y - powinieneś mieć jeden.
Jeśli nie chcesz uruchamiać jakiegoś stage'a dla danego środowiska, to GitLab ma coś takiego jak except i only, można tego użyć zeby ominąć jakiś stage, tutaj jest przykład: https://stackoverflow.com/questions/39988497/how-can-you-execute-gitlab-stages-conditionally
Polecam też google "gitlab conditional job stage".
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2384
-
Zgodnie z CI/CD
"only and except are not being actively developed. rules is the preferred keyword to control when to add jobs to pipelines.", więcrulessą na topie. -
Nie rozumiem co to znaczy kilka "pipelineów". Możesz doprecyzować? Na każdym branchu masz osobnego
.gitlab-ci.yml? Bo jeśli nie to raczej masz jeden pipeline, w ramach którego, pewne rzeczy wykonywane są sekwencyjnie (stages), a inne mogą być wykonywane równolegle w ramach stage'a (jeśli są runnery), a jeszcze inne warunkowo (np. w oparciu o taga)
Może po prostu potrzebujesz zadeklarować dependencies w jobach tego samego stage, tak, żeby "jobA" wykonał się przed "jobB"?