【问题标题】:svn create tag from ant in jenkinssvn 从詹金斯的蚂蚁创建标签
【发布时间】: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/tagshttps://host:port/svn/project 添加凭据,但这并没有改变任何东西。

可能文字 svn 命令正在使用 Jenkins 运行的任何用户执行?如何告诉 Jenkins 使用特定凭据来执行此任务(以及如何在 Jenkins 中配置这些凭据)?

【问题讨论】:

    标签: jenkins svn


    【解决方案1】:

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

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

    1. 转到构建环境(它是一个标题)
    2. 选中复选框屏蔽密码和正则表达式(并启用全局密码)
    3. 添加名称/密码对,例如名称 = svnpass & 密码 = ...
    4. 然后就可以在ant-script ${svnpass}中使用密码了
    5. 在 ant-calls 中添加用户名/密码,例如svn delete ... --username ... --password ${svnpass}

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      相关资源
      最近更新 更多