Jenkinsfile 语法:从工作区提交到 Subversion SCM 存储库
Jenkinsfile syntax: Commit to Subversion SCM repository from workspace
不知何故,我找不到这种情况的声明性管道语法 (Jenkinsfile) 示例。
这个想法很简单。 Jenkins 管道工作区中有一些本地文件在管道阶段开始时从 Subversion SCM 存储库中检出,它是从某个分支下检出的。
我修改了这个文件,在管道阶段结束时,我需要将这个文件提交回 SCM 存储库。
是否有人有此类提交的 Jenkins 管道 DSL 语法示例?此提交应该能够覆盖 SCM 存储库中分支下可用的文件。
您不想 "override" 提交,而是添加另一个将更新文件的提交,对吗?事实上,了解存储库中的更改来自何处是一个很好的做法。
对于 Subversion,你应该做类似的事情
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId:'mycreds', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh "svn commit --message 'jenkins update' --non-interactive --no-auth-cache --username $USERNAME --password $PASSWORD"
}
注意:mycreds 将是您存储在 jenkins
中的 username/password 凭证的 ID
最终让 jenkins 执行提交是您在实施之前要与您的团队讨论的事情,如果做得不好,可能很难维护
不知何故,我找不到这种情况的声明性管道语法 (Jenkinsfile) 示例。
这个想法很简单。 Jenkins 管道工作区中有一些本地文件在管道阶段开始时从 Subversion SCM 存储库中检出,它是从某个分支下检出的。
我修改了这个文件,在管道阶段结束时,我需要将这个文件提交回 SCM 存储库。
是否有人有此类提交的 Jenkins 管道 DSL 语法示例?此提交应该能够覆盖 SCM 存储库中分支下可用的文件。
您不想 "override" 提交,而是添加另一个将更新文件的提交,对吗?事实上,了解存储库中的更改来自何处是一个很好的做法。
对于 Subversion,你应该做类似的事情
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId:'mycreds', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh "svn commit --message 'jenkins update' --non-interactive --no-auth-cache --username $USERNAME --password $PASSWORD"
}
注意:mycreds 将是您存储在 jenkins
中的 username/password 凭证的 ID最终让 jenkins 执行提交是您在实施之前要与您的团队讨论的事情,如果做得不好,可能很难维护