2017-09-13 73 views
1

Gitlab CI/CD新手。有沒有辦法讓Gitlab CI只在我提交實際文件時運行?

什麼是我的.gitlab-ci.yml文件中使用的正確結構,以確保我的驗證作業僅在發生「真實」檢入時才運行?

我的意思是,我觀察到創建合併請求的那一刻 - 這當然會創建一個新分支 - CI/CD進程運行。也就是說,分支創建本身,儘管事實上沒有文件已經改變,導致.gitlab-ci.yml文件被處理並且流水線被啓動。

理想情況下,我只希望發生這樣的事情時,實際上有一個文件或文件添加等的變化 - 在常識上,我不希望CI/CD上運行愚蠢的操作實際上並沒有真正改變正在開發的軟件的狀態。

我很熟悉exceptonly,但這些似乎不能按我想要的方式限制事情。我是否缺少基本類別或配方?

+0

您可能想要訂閱並在其追蹤器上投票處理此問題:https://gitlab.com/gitlab-org/gitlab-ce/issues/19232 – Alfageme

回答

3

恐怕你問的問題在Gitlab CI中是不可能的。

可能有一種方法可以使用CI_COMMIT_SHA預定義變量,因爲在您的新分支中與您的源分支相比相同。

儘管如此,管道將運行之前,它可以確定或比較自定義腳本或條件中的SHA。

Gitlab爲分支機構或標籤運行管道,而不是提交。推動回購觸發管道,分支實際上是推動對回購的改變。

+0

非常感謝您的回答:至少現在我知道在這裏使用正確的心智模式。也許我可以使用提交消息「過濾」?尋找正確的模式在這裏使用。 –

+0

是的,你可以,只要記住過濾也將發生在管道工作內部,因此它需要先運行。如果你有足夠的跑步者,我個人不介意管道運行。如果它適合您,也可以隨時註冊並標記答案。 –

相關問題