我在 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/