Jak skonfigurować uruchamianie zadania w GitLab po naciśnięciu przycisku?
sobes.tech AI
Odpowiedź od AI
Aby skonfigurować ręczne uruchamianie zadania w GitLab CI/CD, używa się słowa kluczowego when: manual w opisie zadania w pliku .gitlab-ci.yml.
Przykład:
stages:
- build
- deploy
build_job:
stage: build
script:
- echo "Budowanie projektu..."
# Komendy budowania
deploy_staging:
stage: deploy
script:
- echo "Wdrażanie na staging..."
# Komendy wdrażania
when: manual # To zadanie musi być uruchomione ręcznie
allow_failure: false # Domyślnie false, ale wyraźnie wskazane dla jasności
Wyjaśnienie:
when: manual: Wskazuje GitLab, że to zadanie nie zostanie uruchomione automatycznie przy zmianie kodu (commit) lub według harmonogramu. Będzie czekać na ręczne uruchomienie przez użytkownika przez interfejs GitLab.allow_failure: false: Określa, czy kolejne zadania (jeśli istnieją) mają być wykonywane, jeśli to zadanie ręczne zakończy się niepowodzeniem. Jeśli ustawione nafalse(domyślnie), pipeline zatrzyma się w przypadku niepowodzenia tego zadania. Jeśli natrue, pipeline będzie kontynuować mimo niepowodzenia.
Po dodaniu i zatwierdzeniu takiego pliku .gitlab-ci.yml, w interfejsie pipeline'ów GitLab (CI/CD -> Pipelines) pojawi się przycisk uruchomienia („Run”) lub jego status będzie wyświetlany jako „Manual”. Kliknięcie tego przycisku zainicjuje wykonanie zadania.
Można również włączać ręczne zadania w skład etapów, które automatycznie uruchamiają inne zadania. Na przykład:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Budowanie..."
test_job:
stage: test
needs: [build_job]
script:
- echo "Testowanie..."
deploy_production:
stage: deploy
needs: [test_job]
script:
- echo "Wdrażanie na produkcję..."
when: manual # Dostępne tylko po pomyślnym teście
variables:
TARGET_ENVIRONMENT: "production" # Przykład: przekazywanie zmiennych do ręcznego zadania
Tutaj zadanie deploy_production będzie dostępne do ręcznego uruchomienia tylko po pomyślnym zakończeniu zadania test_job.
Dodatkowo:
variables: Ręczne zadania mogą korzystać ze zmiennych zdefiniowanych zarówno w pliku.gitlab-ci.yml, jak i w ustawieniach projektu/grupy.rules: Bardziej skomplikowane scenariusze uruchomienia mogą korzystać z kluczarulesrazem zwhen: manual, aby określić warunki, w których ręczne zadanie stanie się dostępne lub obowiązkowe.- API: Ręczne zadania mogą być również uruchamiane przez API GitLab CI/CD.
Podsumowując, when: manual jest głównym mechanizmem do realizacji ręcznego uruchamiania zadań w GitLab.