0

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

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

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

4

4 回答 4

0

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

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

于 2012-04-08T01:34:56.403 回答
0

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

于 2012-04-09T15:17:46.780 回答
0

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

文本文件的更改并没有那么糟糕,因为它们的差异非常好,Subversion 以差异格式存储每个修订。但是,二进制文件并没有那么好区分。如果您的二进制输出大小为 500 Mb,则每次提交都会将 500 Mb 添加到您的 Subversion 存储库中。使用 Hudson 执行此操作,并在每次构建后执行此操作,您在不到一年的时间内谈论数百 GB 的数据——其中大部分将是您根本不需要的代码的过时版本.

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

我们将 Hudson 作业定义为Delete Old Builds,但将Days to KeepMaximum to Keep留空。相反,我们单击Advance按钮并指定保留Artifacts的时间。这样,我们永远不会删除构建,但我们会在 Hudson 服务器上保留足够的空间。

在特定构建中,您可以单击Keep this build forever,它将保存工件而不是删除它们。这允许您保留已发布的工件,但仍会删除您不再感兴趣的日常构建内容。

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

如果您想变得更高级(谁不想),请将您的构建工件放在 Maven 存储库中。即使您的构建过程不使用 Maven,您也可以这样做。同样,这会存储您的工件,但允许您删除和修剪您不想保留的工件。

If you really, really want to store your build artifacts in Subversion, you can do what you did with the batch file, and use svn co and svn commit -m"Some sort of message %BUILD_NUMBER%" commands to do it. However, once something is in your Subversion repository, it's very, very difficult to remove it. Be prepared to burn through gobs of diskspace.

于 2012-04-09T17:38:18.053 回答
0

Try adding following piece of script in 'Execute shell' under configure.

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 " 

于 2013-11-12T12:33:57.950 回答