Sobes.tech
Middle

Как да настроите изпълнението на джоб в GitLab с натискане на бутон?

sobes.tech AI

Отговор от AI

За настройка на ръчно стартиране на джоба в GitLab CI/CD се използва ключовата дума when: manual в описанието на джоба във файла .gitlab-ci.yml.

Пример:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the project..."
    # Команди за изграждане

deploy_staging:
  stage: deploy
  script:
    - echo "Deploying to staging..."
    # Команди за деплой
  when: manual # Тази джоба трябва да се стартира ръчно
  allow_failure: false # По подразбиране е false, но явно ще го посочим за яснота

Обяснение:

  • when: manual: Посочва на GitLab, че тази джоба автоматично няма да се стартира при промяна на кода (commit) или по график. Тя ще чака ръчно стартиране от потребителя чрез интерфейса на GitLab.
  • allow_failure: false: Определя дали следващите джоби (ако има такива) да се изпълняват, ако тази ръчна джоба завърши неуспешно. Ако е настроено на false (по подразбиране), пайплайнът ще спре при неуспех на тази джоба. Ако е true, пайплайнът ще продължи въпреки неуспеха.

След добавяне и комитване на такъв .gitlab-ci.yml файл, в интерфейса на пайплайни в GitLab (CI/CD -> Pipelines) до джобата deploy_staging ще се появи бутон за стартиране („Run“) или нейният статус ще бъде показан като „Manual“. Натискането на този бутон ще инициира изпълнението на джобата.

Може също така да включите ръчни джоби в етапи, които автоматично стартират други джоби. Например:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building..."

test_job:
  stage: test
  needs: [build_job]
  script:
    - echo "Testing..."

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "Deploying to production..."
  when: manual # Само след успешно тестиране, и тогава ръчно
  variables:
    TARGET_ENVIRONMENT: "production" # Пример: предаване на променливи за ръчна джоба

Тук джобата deploy_production ще бъде достъпна за ръчно стартиране само след успешно завършване на джобата test_job.

Допълнително:

  • variables: Ръчните джоби могат да използват променливи, определени както във файла .gitlab-ci.yml, така и в настройките на проекта/групата.
  • rules: По-сложни сценарии за стартиране могат да използват ключовата дума rules заедно с when: manual, за да определят условията, при които ръчната джоба става достъпна или задължителна.
  • API: Ръчните джоби могат също да бъдат стартирани чрез GitLab CI/CD API.

По този начин, when: manual е основният механизъм за реализиране на ръчно стартиране на джоб в GitLab.