我的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/tags和https://host:port/svn/project添加凭据,但这并没有任何改变。>
可能是Jenkins以什么用户身份执行字面的svn命令?如何告诉Jenkins为此任务使用特定的凭据(以及如何在Jenkins中配置这些凭据)?
答案 0 :(得分:0)
用于签出的凭据不会传播到连续的构建步骤。这些以您的Jenkins设置的默认用户身份运行。在这种情况下,该用户无权访问该存储库。
如果您没有对Jenkins构建服务器的全局访问权限,则几乎没有可用的选项。我们的解决方案是(在作业配置中):