首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Gitlab CI中建立手动阶段?

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

Stack Overflow用户
提问于 2015-08-09 21:22:23
回答 3查看 28.5K关注 0票数 20

在Gitlab CI版本8.9中,我似乎找不到任何手动升级的文档。如何执行手动阶段,如"Deploy to Test"?

我希望Gitlab CI将一个成功的RPM部署到dev,然后一旦我审查了它,就推送到测试,并从那里生成一个版本。目前Gitlab CI可以做到这一点吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-18 19:33:47

更新:在GitLab 8.10中引入了手动操作。手动操作是一种特殊类型的作业,不会自动执行;它们需要由用户显式启动。手动操作可以从流水线视图、生成视图、环境视图和部署视图启动。您可以多次执行相同的手动操作。手动操作的一个示例用法是部署到生产环境。这个答案的其余部分仅适用于Gitlab 8.9和更早的版本。

历史答案:

Gitlab在8.9中似乎没有提供手动部署/发布。

一种可能性是有一个受保护的分支来触发释放。请在此处查看有关受保护分支的信息:http://doc.gitlab.com/ce/workflow/protected_branches.html

从本质上讲,受保护的分支将允许您创建一个分支(testdeploybranch),只有您才能将代码合并到其中。只要提交到dev将通过Gitlab CI测试和部署任务,以及您的手动审查,您可以将该提交合并到protected分支中以触发发布。对于此分支,您可以使用.gitlab-ci.yml作业定义中的唯一选项在Gitlab CI中设置特殊发布作业。点击此处阅读更多信息:http://doc.gitlab.com/ci/yaml/README.html

所以就像这样:

代码语言:javascript
复制
release:
  only: testdeploybranch
  type: release
  script: some command or script invocation to deploy to Test

这可能不是你想要的,但它确实允许你从Gitlab进行手动发布。它不提供一种为不同服务器手动执行相同发布过程的简单方法。也许其他人可以在这个策略上进行扩展。

票数 10
EN

Stack Overflow用户

发布于 2018-12-12 18:39:40

您可以在作业(documentation)中使用when: manual将任务设置为手动任务。

因此,例如,如果您希望在每次推送时都进行部署,但提供手动拆除基础设施的选项,则可以这样做:

代码语言:javascript
复制
stages:
  - deploy
  - destroy

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

destroy:
  stage: destroy
  script:
    - [STEPS TO DESTROY]
  when: manual

使用上面的配置,如果您转到GitLab项目>Pipeline,您应该会看到最后一次提交旁边的play按钮。单击play按钮时,您可以看到destroy选项。

票数 28
EN

Stack Overflow用户

发布于 2016-08-21 19:18:32

最后,我们有在Gitlab 8.10中引入的GitLab CI manual actions

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31904686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档