Вы смешали задание с when: manual
, когда запускаете конвейер вручную. Это то, что вам нужно:
https://docs.gitlab.com/ee/ci/pipelines.html#manually-executing-pipelines
Вы можете использовать это вместе с only
для некоторой переменной. Что-то вроде:
...
apply:
stage: deploy
environment:
name: production
script:
- terraform apply -state=$STATE -input=false $PLAN
- terraform state show aws_instance.bastion
dependencies:
- plan
only:
refs:
- master
variables:
- $RELEASE == "yes"
destroy:
stage: destroy
environment:
name: production
script:
- terraform destroy -state=$STATE -auto-approve
dependencies:
- apply
only:
refs:
- master
variables:
- $RELEASE == "yes"
С чем-то вроде этого вы можете иметь задания, которые никогда не запускаются нормально, но только если вы вручную запускаете новый конвейер в главной ветви и устанавливаете переменную $RELEASE
в yes
. Я не проверял это, поэтому мои извинения, если это не работает!