![](/img/trans.png)
[英]gitlab job is running even if there is no changes in the schedule pipeline
[英]Gitlab cicd schedule job check if this already done
我做了預定的工作,但它可以工作幾次,即使沒有更改(在源代碼中)沒有提交之后它沒有完成先生。 如何檢查它是否工作一次結束如果沒有變化不要重新開始?
您可以這樣做的一種方法是創建/檢查cache:
文件以確定計划的管道是否已經運行。
如果該文件不存在,則意味着該提交 SHA 的計划作業尚未運行。 如果文件確實存在(從緩存中恢復),那么我們知道在此提交之前已經運行了計划。 這里我們使用$CI_COMMIT_SHA
的key:
以便緩存只有在 repo 發生更改時才會失效。
myjob:
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
cache:
key: $CI_COMMIT_SHA
paths:
- .schedule_cache
script:
- | # check if the job already ran for this commit
if [[ -f .schedule_cache ]]; then
echo "already ran for this commit, nothing to do"
exit 0
fi
- ... # do the job
- echo "done" > .schedule_cache # create the cache file
如果您需要此作業同時為分支和計划運行,您可以將密鑰更改為key: $CI_PIPELINE_SOURCE-$CI_COMMIT_SHA
,以便每個管道源的密鑰另外分開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.