如何在Jenkins作业中提交到Subversion仓库?

ktca8awb  于 2023-03-12  发布在  Jenkins
关注(0)|答案(1)|浏览(208)

下午好,
我正在Jenkins中运行一个作业,需要执行一个svn commit命令将结果上传到Subversion存储库。
首先,我已经配置了源代码源,以使用Subversion中托管的存储库,使用有效的用户凭据,并尽可能使用svn update

然后,我运行作业并修改了一些文件。
最后,执行svn add Packages/ --forcesvn commit -m "Testing Jenkins Job"

直到svn add命令,作业才能正确运行,但当执行svn commit时,我收到以下错误:

svn: E170013: Falló el commit (detalles a continuación):
svn: E170013: Unable to connect to a repository at URL 'https://svn...'
svn: E215004: No more credentials or we tried too many times.
Authentication failed

如果我在svn commit命令中添加参数--username user --pasword pass,它就可以正常工作,但是我不明白为什么没有这些参数就不能正常工作,因为我已经在subversion配置中配置了用户凭证,而且我不想把用户密码写在作业脚本中.
我尝试使用环境变量和subversion凭据:

但是当我执行echo ${SVN_CREDENTIAL}时,它返回一个字符串,格式如下:26c*****-****-****-****-*********671,我需要这样的代码:--username user --password pass
有人知道为什么提交不起作用,或者我如何使用密码而不用输入纯文本吗?提前感谢...

8fsztsew

8fsztsew1#

最后,我使用Jenkins插件“Mask Passwords"解决了这个问题。这个插件允许屏蔽可能出现在控制台中的密码,包括定义为构建参数的密码。下面是这个插件的链接:https://plugins.jenkins.io/mask-passwords/
安装并启用此插件后,它允许我在Jenkins作业中选中以下复选框:

因此,我可以使用变量集作为密码参数来运行以下命令:svn commit -m "Jenkins Job - $date" --username user --password ${SVN_PASS}

命令的控制台输出如下所示:

相关问题