我似乎无法在版本8.9中的Gitlab CI中找到任何手动登台的文档。如何进行“部署测试”等手动阶段?
我希望Gitlab CI将一个成功的RPM部署到dev,然后在我审阅之后,推送到Test,然后从那里生成一个版本。目前Gitlab CI可以实现吗?
答案 0 :(得分:7)
更新:GitLab 8.10中引入了手动操作。从手册“手动操作是一种特殊类型的作业,不是自动执行的;它们需要由用户显式启动。可以从管道,构建,环境和部署视图启动手动操作。您可以执行相同的手册多次行动。“手动操作的示例用法是部署到生产。本答案的其余部分仅适用于Gitlab 8.9及更早版本。
历史答案:
在8.9的Gitlab中,似乎没有手动部署/发布。
一种可能性是拥有一个触发释放的受保护分支。请在此处查看有关受保护分支的信息:http://doc.gitlab.com/ce/workflow/protected_branches.html
本质上,受保护的分支允许您创建一个分支(testdeploybranch),只允许您将代码合并到其中。每当提交dev都会通过Gitlab CI测试并部署作业以及手动审核时,您可以将该提交合并到受保护的分支中以触发发布。对于此分支,您可以使用.gitlab-ci.yml作业定义中的 only 选项在Gitlab CI中设置特殊的发布作业。在此处阅读更多内容:http://doc.gitlab.com/ci/yaml/README.html
这样的事情:
release:
only: testdeploybranch
type: release
script: some command or script invocation to deploy to Test
这可能不是您所追求的,但它确实允许您从Gitlab手动发布。它不提供为不同服务器手动手动执行相同发布过程的简便方法。也许其他人可能能够扩展这一战略。
答案 1 :(得分:4)
最后,我们在GitLab 8.10中引入了Gitlab CI manual actions。
答案 2 :(得分:3)
您可以通过在作业(documentation)中使用when: manual
将任务设置为手动。
例如,如果您想让部署人员在每次推送时都发生,但可以选择手动拆除基础架构,这就是您的做法:
stages:
- deploy
- destroy
deploy:
stage: deploy
script:
- [STEPS TO DEPLOY]
destroy:
stage: destroy
script:
- [STEPS TO DESTROY]
when: manual
使用上述配置,如果转到GitLab项目>管道,则应该在最后一次提交旁边看到一个播放按钮。单击播放按钮时,您会看到destroy
选项。