在Hudson构建之后承诺使用Tortoise SVN?

时间:2012-04-06 00:00:36

标签: svn tortoisesvn hudson

我发现了这个:Plugin to commit hudson build artifact但是在尝试了可想象的每种设置组合大约5-6小时后,我无法成功提交到我们的https'svn。

我正在考虑通过批处理文件执行此操作 - 但不知道是否可能隐藏密码...如果不是,那么这也不是真正的选项。

有人这样成功吗?可以使用一些建议..谢谢。

4 个答案:

答案 0 :(得分:0)

主要问题是Tortoise没有“真正的”SVN命令行客户端。命令行几乎不能提交 - 而是打开一个窗口并提示输入更多信息。

你看过Maven release plugin了吗?您可以将它与SVN命令行(而不是Tortoise)一起使用。您可以加密Maven passwords。虽然我已经成功地将这些用于Nexus,但我还没有尝试过使用它们来访问SVN。

答案 1 :(得分:0)

我最终只是使用批处理脚本来检出我的目标文件夹,将文件复制到该文件夹​​,将它们添加到SVN,然后提交文件。唯一的障碍是提供凭据。我的解决方案是登录Hudson正在执行的机器并手动提交一次。这使我能够在构建服务器上加密“保存我的登录详细信息”。理想情况下,您应该使用受限访问帐户来执行此步骤。

答案 2 :(得分:0)

我不会将Subversion构建的文件提交回Subversion存储库。那只是在惹麻烦。一旦你向Subversion提交了一些东西,它就永远存在。您永远不能删除过时的信息。

文本文件的更改并不是很糟糕,因为它们相当不错,而且Subversion以diff格式存储每个修订版本。但是,二进制文件并没有那么好。如果您的二进制输出大小为500 Mb,则每次提交都会将500 Mb添加到Subversion存储库中。与Hudson一起做,并在每次构建之后执行此操作,并且您在不到一年的时间内就会讨论数百GB的数据 - 而且大部分内容都是您不需要的代码的过时版本

使用Hudson本身来存储您的构建。构建过程中的一个步骤是归档工件。我只是使用我的构建文件将我想要存储的所有工件复制到target/archive目录中,并让Hudson存储它。

我们将Hudson作业定义为删除旧版本,但将要保留的天数要保留的最大值留空。相反,我们点击 Advance 按钮并指定保留 Artifacts 的时间。这样,我们永远不会删除构建,但我们会为Hudson服务器留出足够的空间。

在特定版本中,您可以单击永久保留此构建,它将保存工件而不是删除它们。这允许您保留已发布的工件,但仍会删除您不再感兴趣的每日构建内容。

您甚至可以使用wgetcurl来获取工件并进行部署。我们使用部署脚本执行此操作。

如果你想获得更好的(以及谁不想),将你的构建工件放在Maven存储库中。即使您没有在构建过程中使用Maven,也可以执行此操作。同样,这会存储您的工件,但允许您删除并减少您不想保留的工件。

如果您确实想要在Subversion中存储构建工件,可以使用batch文件执行操作,并使用svn cosvn commit -m"Some sort of message %BUILD_NUMBER%"命令执行此操作。但是,一旦Subversion存储库中存在某些内容,删除它就非常非常困难。准备燃烧磁盘空间。

答案 3 :(得分:0)

尝试在configure下的'Execute shell'中添加以下脚本。


echo "Committing build.number file to SVN.."
cd $APPROPRIATE_PATH

svn commit -m "some svn commit comment" MyApp/etc/build/build.number

echo "Build file committed "