[英]GitLab CI - avoid build when adding tag
添加 git 標簽時,如何防止觸發 gitlab ci 管道? 我在本地運行這個命令(而不是在 gitlab-ci 作業中)
git tag -a "xyz"
然后推標簽; 這會觸發各種管道。 我想排除其中一些管道的運行。
我正在嘗試從諸如此類的問題中改變想法; 這個問題只使用 ,我想排除,所以我正在嘗試除外。 那里的答案有兩種變體,一種有參考文獻,一種沒有。
build:
# ... my work here ...
except:
- tags
build:
# ... my work here ...
except:
refs:
- tags
兩者似乎都沒有任何效果; 我添加了一個標簽,構建仍然發生。
我的理解在這里可能完全錯誤,因為單詞標簽似乎有三種可能的含義,在閱讀文檔或示例時,我並不總是確定哪個含義適用:
我有興趣控制第一種情況下會發生什么。 到目前為止,從評論中可以清楚地看出“except: -tags”與我的案例無關,那么有沒有什么方法可行呢?
如果你想跳過標簽的構建, Except tags
正是你應該使用的。
您需要確保了解提交 vs 分支 vs 標簽
為了說明將標記的提交推送到 gitlab 時會發生什么,我執行了以下操作:
.gitlab-ci.yml
,內容如下:tests_always_run:
script:
- echo I should always execute
tests_except_tags:
script:
- echo I skip tagged triggers
except:
- tags
--follow-tags
推送以確保標記也傳播到服務器:git add .gitlab-ci.yml
git commit -m 'my great yml with except tags'
git tag -a "abc" -m "Test tag"
git push --follow-tags
如果你想跳過選定提交的 CI,那么你可以使用git push -o ci.skip ,靈感來自這篇文章
它看起來像GitLab建議使用rules
,而不是except
按文件
only 和 except 沒有被積極開發。 rules 是控制何時向管道添加作業的首選關鍵字。
所以它會
your_job:
stage: your_stage
script:
- echo "Hello"
rules:
- if: $CI_COMMIT_TAG
when: never
- when: always
(注意:這是一個格式化的評論而不是一個答案)
為了調試觸發管道的條件:
gitlab 的文檔提到了在運行 CI 作業時設置的幾個變量,其中:
CI_COMMIT_REF_NAME
:為其構建項目的分支或標記名稱CI_COMMIT_BRANCH
:提交分支名稱。 僅在構建分支時出現。CI_COMMIT_TAG
:提交標簽名稱。 僅在構建標簽時出現。
讓您的構建作業輸出其中一些變量(例如: echo "triggered by ref : " $CI_COMMIT_REF_NAME
)以查看觸發您的作業的原因。
我遇到了同樣的情況,我的解決方法是:
這兩個階段都在 my.gitlab-ci.yml 文件中配置,具有不同的名稱“ Dev-UnitTests ”,它僅在有人提交到存儲庫時執行,對分支“ test ”的標簽沒有影響
Dev-UnitTests:
stage: pruebas
script:
- mvn $MAVEN_CLI_OPTS test
artifacts:
when: always
reports:
junit:
- target/surefire-reports/*Test.xml
- target/failsafe-reports/*Test.xml
cobertura: target/site/jacoco/jacoco.xml
tags:
- shell
except:
- test
- tags
單元測試,僅在分支測試上完成合並時運行
Unit Tests:
stage: pruebas
script:
- mvn $MAVEN_CLI_OPTS test
artifacts:
when: always
reports:
junit:
- target/surefire-reports/*Test.xml
- target/failsafe-reports/*Test.xml
cobertura: target/site/jacoco/jacoco.xml
tags:
- shell
only:
- test
創建標簽時沒有再次運行任何管道,希望對您有所幫助。
關鍵是:
...
except:
- tags
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.