作为CI构建的一部分提交到存储库

时间:2016-12-22 20:09:12

标签: gitlab-ci

我有一个CI管道可能会做一些半变态的事情。我们不要讨论这一部分。

作为CI的一部分,我将生成一个工件(README.md),我想提交并推回到同一个存储库。由于身份验证错误,仅使用git push origin ...无法正常工作。

我是否限制使用类似秘密变量和令牌的东西,并添加另一个遥控器以便它可以推送?

2 个答案:

答案 0 :(得分:3)

有一些方法可以将ssh标记添加到构建运行时,它可以提交甚至执行推送到源。 我想即使是最近GitLab也添加了一项新功能,为每个版本生成一个唯一的令牌,可以用于同样的目的。

然而,总的来说,我不认为你可以在运行构建的同一个git基础上提交任何东西,因为签出是在一个独立的头模式。这意味着您将无法添加到历史记录中,特别是在远程中。

要考虑的下一个问题是,这意味着如果您能够为构建系统提交,这可能会触发另一个构建并触发循环。

因此,可能要么使用工件系统,要么在构建期间在单独的目录中添加ssh标记和clone / checkout / commit / push。无论如何,这个文档解释了如何添加令牌:https://docs.gitlab.com/ee/ci/ssh_keys/README.html

答案 1 :(得分:1)

Gitlab似乎在获取CI作业的项目后更改了.git文件夹。我不确定它只会改变远程部分。所以我发现只有解决方案是将带有sshkeys的gitlab-runner用户添加到gitlab。在我的工作中,在单独的文件夹中创建git clone,进行更改,然后提交并推送它。