如何在Gitlab CI中建立手动阶段?

Rou*_*tor 12 gitlab gitlab-ci

我似乎无法在版本8.9中的Gitlab CI中找到任何手动登台的文档.如何进行"部署测试"等手动阶段?

我希望Gitlab CI将一个成功的RPM部署到开发人员,然后在我审阅之后,推送到Test,然后从那里生成一个版本.目前Gitlab CI可以实现吗?

小智 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作业定义中的唯一选项在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
Run Code Online (Sandbox Code Playgroud)

这可能不是您所追求的,但它确实允许您从Gitlab手动发布.它不提供为不同服务器手动手动执行相同发布过程的简便方法.也许其他人可能能够扩展这一战略.


aux*_*aux 5

最后,我们有GitLab 8.10 中引入的Gitlab CI手动操作


Lon*_*Dev 5

您可以通过when: manual在作业(文档)中使用来将任务设置为手动。

因此,例如,如果您想让部署人员在每次推送时都发生,但可以选择手动拆除基础架构,这就是您的做法:

stages:
  - deploy
  - destroy

deploy:
  stage: deploy
  script:
    - [STEPS TO DEPLOY]

destroy:
  stage: destroy
  script:
    - [STEPS TO DESTROY]
  when: manual
Run Code Online (Sandbox Code Playgroud)

使用上面的配置,如果转到GitLab项目>管道,则应该在最后一次提交旁边看到一个播放按钮。当您单击播放按钮时,您会看到该destroy选项。

  • 有没有办法将整个阶段标记为手动,这样我就不必在每个作业中添加“when:manual”?更好的是,是否有一个标志使得管道中的每个作业都必须手动触发?如果有类似的东西可以暂时启用以进行测试,那就太好了,但我在文档中找不到类似的内置内容。 (2认同)