Jenkinsfile 语法:从工作区提交到 Subversion SCM 存储库
Posted
技术标签:
【中文标题】Jenkinsfile 语法:从工作区提交到 Subversion SCM 存储库【英文标题】:Jenkinsfile syntax: Commit to Subversion SCM repository from workspace 【发布时间】:2020-05-06 12:51:05 【问题描述】:不知何故,我找不到这种情况下的声明性管道语法 (Jenkinsfile) 示例。
这个想法很简单。 Jenkins 管道工作区中有一些本地文件在管道阶段开始时从 Subversion SCM 存储库中检出,它是从某个分支下检出的。
我修改了这个文件,在管道阶段结束时,我需要将此文件提交回 SCM 存储库。
有没有人有用于此类提交的 Jenkins 管道 DSL 语法示例?此提交应该能够覆盖 SCM 存储库中分支下可用的文件。
【问题讨论】:
github.com/jenkinsci/pipeline-examples/blob/master/… 【参考方案1】:您不想“覆盖”提交,而是添加另一个将更新文件的提交,对吗?事实上,了解存储库中的更改来自何处是一个很好的做法。
对于 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 中的用户名/密码凭据的 ID
最终让 jenkins 提交是你想在实施之前与你的团队讨论的事情,如果做得不好,可能很难维护
【讨论】:
感谢您的帮助。我需要将一些配置容器文件提交到 Subversion 中的一个分支。该分支将用于保存此类配置容器。我想使用现有的 Jenkins 凭据 ID 进行提交。 所以它需要将 svn 客户端安装到 jenkins 主机(图像)中,这是我试图避免的,因为官方图像没有它。 您永远不必修改安装 jenkins 的图像。相反,您应该使用从站来运行构建,或者使用 docker 映像,理想情况下,我会使用允许我运行的 Kubernetes 集群、构建时间、1 个从站 + 我可能需要进行集成测试的其他容器要求。如果 docker hub 上没有从属镜像符合您的需求,或者您想为镜像添加一些安全性,我建议您尝试一下 packer 及其 docker 插件以上是关于Jenkinsfile 语法:从工作区提交到 Subversion SCM 存储库的主要内容,如果未能解决你的问题,请参考以下文章