1

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

4

1 回答 1

1

您可以设置部署冻结来执行此操作。

例如,您可以使用这样的方式设置 CI YAML rules:(如果需要,您还可以检查脚本中的冻结):

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:

于 2022-01-20T03:38:45.563 回答