簡體   English   中英

Gitlab cicd 計划作業檢查是否已經完成

[英]Gitlab cicd schedule job check if this already done

我做了預定的工作,但它可以工作幾次,即使沒有更改(在源代碼中)沒有提交之后它沒有完成先生。 如何檢查它是否工作一次結束如果沒有變化不要重新開始?

您可以這樣做的一種方法是創建/檢查cache:文件以確定計划的管道是否已經運行。

如果該文件不存在,則意味着該提交 SHA 的計划作業尚未運行。 如果文件確實存在(從緩存中恢復),那么我們知道在此提交之前已經運行了計划。 這里我們使用$CI_COMMIT_SHAkey:以便緩存只有在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM