如何让gitlab管道停止并要求我输入变量?
我在gitlab中创建了一个管道,使用如何让gitlab管道停止并要求我输入变量?,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我在gitlab中创建了一个管道,使用 image: name: hashicorp/terraform:light entrypoint: - '/usr/bin/env' - 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' variables: PLAN: dbrest.tfplan STATE: dbrest.tfstate cache: paths: -
image:
name: hashicorp/terraform:light
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
variables:
PLAN: dbrest.tfplan
STATE: dbrest.tfstate
cache:
paths:
- .terraform
before_script:
- terraform --version
- terraform init
stages:
- validate
- build
- deploy
- destroy
validate:
stage: validate
script:
- terraform validate
plan:
stage: build
script:
- terraform plan -state=$STATE -out=$PLAN
artifacts:
name: plan
paths:
- $PLAN
- $STATE
apply:
stage: deploy
environment:
name: production
script:
- terraform apply -state=$STATE -input=false $PLAN
- terraform state show aws_instance.bastion
dependencies:
- plan
when: manual
only:
- master
destroy:
stage: destroy
environment:
name: production
script:
- terraform destroy -state=$STATE -auto-approve
dependencies:
- apply
when: manual
only:
- master
我还在“设置。->”下创建了一个变量CI/CD'->“变量”-我的印象是,当我进入手动阶段
deploy
时,gitlab应该暂停并要求我输入该变量的值,但这不会发生-缺少什么?您将作业与when:manual
混合到手动触发管道时。这是您想要的:
对于某些变量,您可以将其与一起使用。比如:
...
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
。我还没有测试过这个,所以如果它不起作用,我深表歉意 看起来这是有记录的。是的,就是这样!现在,如果gitlab列出了我想在此时设置的变量,那就很方便了——似乎没有任何语法来指定“ask for the variables”。我想你不可能什么都有。