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

How to limit execution of stage in gitlab-ci.yml to some hours?

我在 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:00PM
之后部署 冻结结束:0 8 * * * # 在早上 8 点结束冻结(允许在早上 8 点后部署)
时区:<your timezone>

没有特定的方法可以将此应用到 阶段 你必须为每个你不想做的工作设置 rules:(或等效的脚本步骤) 运行 冻结期间。