以某种方式,在这种情况下,我找不到声明性管道语法(Jenkinsfile)的示例。
这个想法很简单。 Jenkins管道工作区中有一些本地文件是在管道阶段开始时从GIT SCM存储库中检出的,它是从某个分支下检出的。
我修改了此文件,并且在管道阶段结束时,我需要将此文件提交回SCM存储库。
有人针对这种提交有詹金斯管道DSL语法示例吗?该提交应该能够覆盖SCM存储库中分支下的可用文件。
谢谢!
您不想“覆盖”提交,而是添加另一个将更新文件的提交,对吗?确实,了解存储库中的更改来自何处是一个好习惯。
我相信马特的例子实际上是非常好的。首先在Jenkins配置管理中使用git凭证添加一个新凭证,然后在管道步骤中使用
sshagent (credentials: ['git-ssh-credentials-ID']) {
sh("git commit -am 'Jenkins commit'")
sh("git tag -a ${JOB_NAME}-${env.BUILD_NUMBER} -m 'Jenkins'")
sh('git push <REPO> --tags')
}
ssh代理插件在此示例中需要https://plugins.jenkins.io/ssh-agent。您可以使用用户名/密码替代方法,但我认为使用ssh密钥是更好的做法。
最终让詹金斯完成提交是您想要在实施之前与您的团队讨论的事情,如果做得不好,很难维护