2016-12-22 17 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

相关问题