SVN从詹金斯的蚂蚁创建标签

时间:2019-03-21 16:28:40

标签: jenkins svn

我的Jenkins版本使用Subversion进行源代码管理。在GUI的相应字段中,我设置了存储库URL https://host:port/svn/project/trunk,并添加了凭据。

然后构建需要执行多个步骤,每个步骤都是在SVN检出所附带的build.xml上调用ant目标。

结帐本身工作正常,我可以通过查看工作区中的预期文件来验证这一点。这样凭据就可以使用,并且Jenkins可以连接到SVN服务器。

之后,当其中一个构建步骤想要删除并创建SVN标签时就会发生这种情况(下一步将文件复制到SVN标签中-稍后包装系统将使用该标签) :

16:54:17 04.svn-tagging:
16:54:17      [echo] svn delete tag https://host:port/svn/project/tags/tagname    
16:54:17      [exec] svn: E175013: Unable to connect to a repository at URL 'https://host:port/svn/project/tags/tagname'
16:54:17      [exec] svn: E175013: Access to 'https://host:port/svn/project/tags/tagname' forbidden
16:54:18      [exec] Result: 1
16:54:18      [echo] svn create tag https://host:port/svn/project/tags/tagname
16:54:18      [exec] svn: E175013: Unable to connect to a repository at URL 'https://host:port/svn/project/tags'
16:54:18      [exec] svn: E175013: Access to 'https://host:port/svn/project/tags' forbidden
16:54:19 

由于服务器已经可以连接到https://host:port/svn/project/trunk,为什么它不能连接到https://host:port/svn/project/tags?在其他凭据(在 Subversion 下)中,我尝试为https://host:port/svn/project/tagshttps://host:port/svn/project添加凭据,但这并没有任何改变。

可能是Jenkins以什么用户身份执行字面的svn命令?如何告诉Jenkins为此任务使用特定的凭据(以及如何在Jenkins中配置这些凭据)?

1 个答案:

答案 0 :(得分:0)

用于签出的凭据不会传播到连续的构建步骤。这些以您的Jenkins设置的默认用户身份运行。在这种情况下,该用户无权访问该存储库。

如果您没有对Jenkins构建服务器的全局访问权限,则几乎没有可用的选项。我们的解决方案是(在作业配置中):

  1. 转到构建环境(它是标题)
  2. 选中复选框屏蔽密码和正则表达式(并启用全局密码)
  3. 添加名称/密码对,例如名称= svnpass和密码= ...
  4. 然后,您可以在蚂蚁脚本$ {svnpass}中使用密码
  5. 将用户名/密码添加到蚂蚁通话中,例如 svn delete ... --username ... --password $ {svnpass}