2016-12-22 37 views
2

我有一個CI管道,可能會做一些半變態的事情。我們不要辯論那部分。作爲CI構建的一部分提交到存儲庫

作爲CI的一部分,我將生成一個我想提交併推送回同一個存儲庫的工件(README.md)。由於驗證錯誤,僅使用git push origin ...不起作用。

我受限於使用類似祕密變量和令牌的東西,並添加另一個遠程,以便它可以推?

回答

0

在獲取CI作業的項目後,Gitlab似乎改變了.git文件夾。我不確定它只會改變遠程部分。所以我發現唯一的解決方案是用sshkeys將gitlab-runner用戶添加到gitlab中。並在我的作業git clone在單獨的文件夾中,進行更改,然後提交併推送它。

1

有一些方法可以將ssh令牌添加到您的構建運行時,該構建運行時可以提交或甚至執行按入原點。 我想即使在最近GitLab添加了一個新的功能,爲每個構建生成一個獨特的令牌,可用於同樣的緣故。

但是,一般來說,我不認爲你可以提交任何東西在建立運行的同一個git基礎上,因爲退房是在分離頭模式。這意味着您將無法添加到歷史記錄中,特別是在遠程中。

下一個需要考慮的問題是,如果你能夠回饋構建系統,這可能會觸發另一個構建,並觸發一個循環。

所以可能要麼爲它使用工件系統,要麼在構建過程中在一個單獨的目錄中添加ssh令牌和clone/checkout/commit/push。無論如何,這個文檔解釋瞭如何添加令牌:https://docs.gitlab.com/ee/ci/ssh_keys/README.html

+0

永動機方面也困擾我。請注意,我確實將這個整體想法最初稱爲「變態」。這就像一個問題,如果有人問我,我會先回答「不要那麼做」,然後在實際幫助之前強烈沮喪。所以,我感謝你的幫助:) –

+0

是的,不知道你對GitLab有多熟悉,只是試圖給出更廣泛的視圖,所以也許你會找到一些替代方法來做到這一點。但是,鏈接可以幫助您設置並按照自己的意願進行操作。 – mohamnag

相關問題