Sobes.tech
Middle

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 na false (domyślnie), pipeline zatrzyma się w przypadku niepowodzenia tego zadania. Jeśli na true, 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 klucza rules razem z when: 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.