Как да настроите изпълнението на джоб в 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.