如何让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: -

我在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:
    - .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”。我想你不可能什么都有。