【发布时间】:2019-03-21 16:28:39
【问题描述】:
我的 Jenkins 构建使用 Subversion 进行源代码管理。在 GUI 的相应字段中,我设置了存储库 URL https://host:port/svn/project/trunk 并添加了凭据。
然后构建有许多步骤,每个步骤都是在 SVN 检出附带的 build.xml 上调用 ant 目标。
结帐本身工作正常,我可以通过查看工作区中的预期文件来验证这一点。因此凭据有效,Jenkins 可以连接到 SVN 服务器。
THEN 当其中一个构建步骤想要删除并创建一个 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?在 Additional Credentials 中(在 Subversion 下),我尝试为 https://host:port/svn/project/tags 和 https://host:port/svn/project 添加凭据,但这并没有改变任何东西。
可能文字 svn 命令正在使用 Jenkins 运行的任何用户执行?如何告诉 Jenkins 使用特定凭据来执行此任务(以及如何在 Jenkins 中配置这些凭据)?
【问题讨论】: