是否可以将gitlab ci作业标记为手动启动?
我需要它来部署应用程序,但我想决定它是否将部署
答案 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
来触发作业的功能。使用此关键字使触发作业等待,直到您单击“播放”按钮。这使您可以更好地控制下游管道和子管道,它们仅在您希望它们运行时运行。请参见Documentation和Issue。