【问题标题】:Using SVN credentials in Hudson to perform custom SVN actions在 Hudson 中使用 SVN 凭据执行自定义 SVN 操作
【发布时间】:2011-06-05 09:07:32
【问题描述】:

我在这里尝试做的是使用 Hudson 存储在其中的凭据执行某种 SVN 操作。

例如

  1. 开始构建项目 Foo
  2. Project Foo 启动一个 shell 脚本
  3. Shell 脚本使用 Hudson 中设置的凭据为项目 Foo 执行当前源的标记
  4. 构建继续

现在我知道有各种标记插件,但这些并不是我想要的,因为标记取决于构建选项,而不是构建成功。我可以很好地编写脚本,但是当在 Hudson 下运行时,这一切都会失败,因为没有所需的凭据,svn 副本将无法工作 - 因此需要访问 Hudson 已经用于签出项目的那个。

【问题讨论】:

  • 奇数。我有一个构建脚本可以做到这一点,我不需要做任何特别的事情来从 Hudson 签出的工作目录运行 svn 命令。也许您是从工作区根目录而不是实际工作目录运行副本?
  • @Dave Bacher: 你的 svn 服务器需要认证吗?
  • @Arthur Ulfeldt:是的,确实如此(并且存储在 Hudson 中的 svn 凭据具有读写访问权限)。我可能做了一些初始配置(作为运行 Hudson 进程的用户)来设置 svn,以便 svn CLI 命令适用于 hudson 用户 - 例如sudo -u hudson svn info $repo_url 并让 svn 存储凭据。

标签: svn hudson


【解决方案1】:

This 文章提到脚本可以从文件系统访问 Hudson SVN 凭据,因为它们以明文形式存储在文件中。该文章还提出了其他问题,因此请谨慎行事。

【讨论】:

  • 看起来这是在正确的方向 - 但我如何利用 subversion.credentials 文件本身?
  • 实际上它们并没有以明文形式保存,至少对我来说不是。但我记得很久以前它们没有被加密。但我认为修复会在 2008 年或 2009 年出现。我不记得了。
  • 我引用的文章写于 2010 年 10 月。没有具体说明他们使用的是哪个版本的 Hudson。
  • @Peter,密码可能只是 base64 编码。这就是我所看到的。隐藏,但未加密。
  • @Dave:不幸的是你是对的。它只是base64。我本来希望使用更复杂的东西。不过既然有源代码,想知道密码的人都可以使用。
【解决方案2】:

不要再发明轮子了。查看Subversion Tagging PLugin。根据您对 3. 的描述,这个插件对您来说应该足够了。

【讨论】:

  • 不,我不想标记成功的构建 - 它涉及更多。这是为了创建候选发布分支,需要结合用户发起和成功构建。还需要执行其他操作。
  • 我认为您在重用 Hudson 存储的凭据方面运气不佳。--- 但是如果您使用 Maven 或至少有 Maven 可用,您应该能够使用 m2release 插件。 wiki.hudson-ci.org/display/HUDSON/M2+Release+Plugin
猜你喜欢
  • 2017-07-21
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 2011-03-05
  • 2013-11-24
  • 2011-09-25
  • 2010-12-05
  • 1970-01-01
相关资源
最近更新 更多