GitLab CI手动启动作业(部署)

时间:2016-04-16 11:47:38

标签: gitlab continuous-deployment gitlab-ci continuous-delivery gitlab-ci-runner

是否可以将gitlab ci作业标记为手动启动?

我需要它来部署应用程序,但我想决定它是否将部署

3 个答案:

答案 0 :(得分:14)

自第一个答案发布以来,情况发生了变化。这是指原始Gitlab Issue的链接。现在支持执行类似

的操作
production:
  stage: deploy
  script: run-deployment $OMNIBUS_GITLAB_PACKAGE
  environment: production
  when: manual

请注意when: manual属性。 UI更新自身以提供用户触发作业的方式。

答案 1 :(得分:2)

直接支持手动批准的构建步骤。但是应该可以使用ci triggers来实现类似的行为。

build_package:
  stage: build
  script:
  - make build

upload_package:
  stage: package
  script:
  - if [ -n "${UPLOAD_TO_S3}" ]; then make upload; fi

然后,您可以通过发出POST请求并传递已配置的变量来触发重建。

curl -X POST \
  -F token=TOKEN \
  -F ref=master \
  -F "variables[UPLOAD_TO_S3]=true" \
  https://gitlab.example.com/api/v3/projects/9/trigger/builds

如果你有自己的gitlab实例,应该可以在每个合并请求上注入javascript按钮,这将进行curl调用。

答案 2 :(得分:1)

GitLab 13.5(2020年10月)为when: manual功能添加了更多功能,以支持trigger

使用手动作业触发下游或子管道

以前,无法将触发作业配置为等待手动操作。这使得配置下游或子管道触发器以等待用户在运行之前单击它们具有挑战性。

在此版本中,我们添加了添加when: manual来触发作业的功能。使用此关键字使触发作业等待,直到您单击“播放”按钮。这使您可以更好地控制下游管道和子管道,它们仅在您希望它们运行时运行。

https://about.gitlab.com/images/13_5/manual-trigger-jobs.gif -- Trigger downstream or child pipelines with manual jobs

请参见DocumentationIssue