gitlab - 如何将 gitlab-ci.yml 中阶段的执行限制为几个小时?

标签 gitlab continuous-integration gitlab-ci.yml

我在 gitlab-ci.yml 中有多个阶段。例如,我想限制部署到生产阶段,该阶段只能在上午 8 点到下午 16 点之间执行。 这是阶段中的“if”语句还是可以通过其他方式解决?

最佳答案

您可以设置deployment freezes来做到这一点。

例如,您可以使用 rules: 像这样设置 CI YAML (如果需要,您还可以检查脚本中的卡住情况):

deploy_to_production:
  stage: deploy
  script:
    - deploy_to_prod.sh
  rules:
    - if: $CI_DEPLOY_FREEZE == null  # only run when there is no deploy freeze

为了达到您所说的效果,您可以使用以下参数配置部署卡住:

卡住开始:0 16 * * * # 16:00 开始卡住,防止下午 4:00 之后部署
卡住结束:0 8 * * * # 在上午 8 点结束卡住(允许在上午 8 点之后部署)
时区:<your timezone>

没有特殊的方法可以将此应用到您必须设置的阶段 rules: (或等效的脚本步骤)对于您希望在卡住期间不运行的每个作业。

关于gitlab - 如何将 gitlab-ci.yml 中阶段的执行限制为几个小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70768725/

相关文章:

git - 远程 : GitLab: API is not accessible when trying to push commit

git - 使用 Nginx 和 Phusion Passenger 将 rails Gitlab 项目自动部署到子域

github - 将 Gitlab 事件导出到 Github,反之亦然?

continuous-integration - 如何将 Play 与自定义模块和持续集成一起使用

gitlab-ci - Gitlab CI 作业不使用最新的模板更改

Django unittest 运行特定测试语法

git - 设置 .cpanel.yml 文件上传所有内容

svn - 使用持续集成将第三方库存储到源代码管理中

gitlab - 如何从 GITLAB 中的另一个存储库获取文件并用作当前管道中 python 脚本的参数

continuous-integration - 针对特定版本测试 ansible playbook 是否已弃用的语法