在Jenkins中进行svn导入或添加+提交?

时间:2012-01-03 18:07:44

标签: svn jenkins

我想让Jenkins将其构建工件(在我的测试结果中)添加到svn repo中。 我需要添加+ commit或将新创建的结果文件 - 无版本文件 - 导入到svn repo中。此ResultsFolder还包含旧版测试运行的较旧文件。 詹金斯首先检查了回购。

这是这样做的吗?

  1. 在Jenkins中添加构建步骤,执行Windows Batch cmd(Jenkins在Windows计算机上运行)
  2. Svn add cmd:svn add .\ResultsFolder\*以递归方式添加文件夹“ResultsFolder”的所有文件。该文件夹还包含版本化文件和文件夹,这是一个问题吗?!
  3. Svn commit cmd:svn ci .提交之前添加到repo。
  4. 我之所以这样做是因为测试结果必须是:

    1. 备份的
    2. 在另一台机器上检查以进行进一步分析

3 个答案:

答案 0 :(得分:2)

这是一个问题:每当你让Jenkins检查一个新的Subversion版本时,它将触发另一个Jenkins构建。你可能不希望这样。另外,你不应该检查Subversion由构建生成的东西。它会迅速导致您的存储库增长超出当前的磁盘大小,并且您最终会在您的存储库中找到大量没有人感兴趣的工件。相反:

使用Jenkins的存档功能来保存构建工件。

这使它们更容易找到并且更容易找到。另外,当你不再对它们感兴趣时,你可以自动让Jenkins摆脱它们。请记住,您可以锁定 Jenkins构建,以防止您想要保留的工件(例如实际的发布二进制文件)更容易找到。

另外,您的其他计算机可以使用wgetcurl将它们从Jenkins存储库中删除。

Copy Artifact Plugin用于其他工作。

如果需要这些工件的另一个Jenkins作业是另一个Jenkins作业,您可以使用此插件将工件从此作业复制到另一个作业,并自动执行第二个作业。当我对可能需要花费几分钟才能运行的构建进行测试时,我会这样做。

全力以赴并使用Maven

即使你没有使用Maven作为构建过程,它也是存储和管理工件的好方法。作为构建过程的一部分,Jenkins可以在Maven中存储工件,您可以使用wgetcurl甚至Maven本身自动从存储库中获取工件。

这有点复杂,但它是一个独立于Jenkins的定义标准方法。如果您决定从Jenkins搬到TeamCity,这很好。根据Jenkins的专有流程,你不会受到影响。

答案 1 :(得分:0)

为什么不考虑使用Sonar而不是重新发明它?

答案 2 :(得分:0)

这就是我为POM文件所做的:

rem
rem Update SVN with pom.xml file with bumped version
rem
svn co "SVN PATH" %WORKSPACE%\temp --depth files
cd %WORKSPACE%\temp
cp ../pom.xml .
svn ci pom.xml -m "Jenkins : Version Bump"
rd /s /q %WORKSPACE%\temp