2012-04-06 64 views
0

我发现这个:Plugin to commit hudson build artifact但是在尝试每个可设想的组合的5-6个小时之后,我无法成功提交到我们的https'svn。Hudson构建后承诺龟SVN?

我正在考虑通过批处理文件来做到这一点 - 但不知道是否有可能模糊密码......如果不是,那么这也不是一个真正的选择。

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

回答

0

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

0

主要问题是龟没有与“真正的”SVN命令行客户端。命令行几乎可以提交 - 它会打开一个窗口并提示输入更多信息。您是否看过Maven release plugin?你用它与SVN命令行(不是乌龟)。您可以加密Maven passwords。虽然我已经成功地将这些应用于Nexus,但我还没有尝试过使用它们来访问SVN。

0

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

文本文件的变化并不是那么糟糕,因为它们的差异非常好,Subversion将每个版本存储为差异格式。但是,二进制文件不能很好地区分。如果您的二进制输出大小为500 Mb,则每次提交将在您的Subversion存储库中添加500 Mb。用Hudson做这件事,并且在每一次构建之后做这件事,并且在不到一年的时间内讨论数百GB的数据 - 其中大部分将是您的代码的过时版本,您根本不需要。

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

我们定义哈德森作业删除旧的构建,但离开天保持最大保持空白。相反,我们点击Advance按钮并指定保留文物多久。这样,我们永远不会删除一个版本,但我们保持Hudson服务器有足够的空间。

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

您甚至可以使用wgetcurl获取工件并对其进行部署。我们用我们的部署脚本来做到这一点

如果你想获得更好的(和谁不会),把你的构建工件放在一个Maven仓库中。即使您没有在构建过程中使用Maven,也可以这样做。再次,这存储您的工件,但允许您删除和修剪你不想保留的那些。

如果你真的要存储在颠覆你的构建神器,你可以做你与batch文件做了什么,并使用svn cosvn commit -m"Some sort of message %BUILD_NUMBER%"命令来做到这一点。但是,一旦有什么东西在你的Subversion版本库中,就很难删除它。准备烧穿磁盘空间。

0

尝试在配置下的'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 "