【发布时间】:2022-12-11 03:46:37
【问题描述】:
我正在尝试创建一个预定的管道,该管道每凌晨 4 点运行一次,但问题是我只想在前一天有任何提交时运行该作业。我知道我可以通过 $CI_JOB_STARTED_AT 和 $CI_COMMIT_TIMESTAMP 获取当前日期和最后提交日期,但我不知道如何比较这两者。例如,如果最后一次提交日期是 2022-01-26 而当前日期是 2022-01-27,这意味着作业应该运行但如何运行。我已经尝试通过“==”将它们转换为字符串来比较它们,但我不需要知道它们是否相等我需要知道当前日期比上次提交提前 1 天。我已经粘贴了一些我的 yml 脚本来了解我想要实现的目标。 任何帮助将不胜感激。
stage: deploy
script:
- $debug_version = $xmlserver_version + "." + $CI_PIPELINE_ID
- .\CI\DeployToDev "UK1-OFF-DEXM-02" $debug_version
needs:
- Publish_Debug
dependencies:
- Publish_Debug
rules:
- if: '$CURRENT_DATE == $COMMIT_DATE'
when: always
when: manual
tags: *tags
variables:
CURRENT_DATE: ${CI_JOB_STARTED_AT%T*}
COMMIT_DATE: ${CI_COMMIT_TIMESTAMP%T*}```
【问题讨论】:
标签: gitlab yaml gitlab-ci pipeline