Jenkinsfile语法:从工作空间提交到GIT SCM存储库

问题描述 投票:0回答:1

以某种方式,在这种情况下,我找不到声明性管道语法(Jenkinsfile)的示例。

这个想法很简单。 Jenkins管道工作区中有一些本地文件是在管道阶段开始时从GIT SCM存储库中检出的,它是从某个分支下检出的。

我修改了此文件,并且在管道阶段结束时,我需要将此文件提交回SCM存储库。

有人针对这种提交有詹金斯管道DSL语法示例吗?该提交应该能够覆盖SCM存储库中分支下的可用文件。

谢谢!

jenkins version-control jenkins-pipeline commit pipeline
1个回答
0
投票

您不想“覆盖”提交,而是添加另一个将更新文件的提交,对吗?确实,了解存储库中的更改来自何处是一个好习惯。

我相信马特的例子实际上是非常好的。首先在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密钥是更好的做法。

最终让詹金斯完成提交是您想要在实施之前与您的团队讨论的事情,如果做得不好,很难维护

© www.soinside.com 2019 - 2024. All rights reserved.