【问题标题】:Continuous Integration with Jenkins and SVN, how to baseline?与 Jenkins 和 SVN 的持续集成,如何基线?
【发布时间】:2013-11-20 19:34:02
【问题描述】:

我在这里阅读了很多帖子,并且已经在 Linux 中设置了 Jenkins 和 SVN 集成系统,并运行了一些构建。我有使用 ClearCase(SVN) 和 BuildForge(Jenkins) 的 IBM Rational 工具的背景。

使用 IBM 工具,在构建之前,我们在 ClearCase 中创建基线以识别要构建的代码,重新设置子流/分支的基础以将基线代码库引入构建系统,这样它就不会在构建期间发生变化。

使用 SVN/Jenkins,如何实现相同的功能?假设我们在主干上构建代码。 Jenkins 将代码库从主干加载到其构建工作区并在其上运行构建。主干上的代码将在构建期间更改。如何识别SVN中的代码库已经建好?

谢谢 吉荣

【问题讨论】:

    标签: svn jenkins


    【解决方案1】:

    使用 Subversion,Jenkins 将在构建开始时检查主干的最新 revision。构建期间的新提交不会显示在 Jenkins 工作区中(当然,除非您的构建脚本执行 svn update)。

    显然您想跟踪此修订号。 Jenkins 已经在构建日志中执行此操作,但您也可以使用:

    • 环境变量SVN_REVISION 设置为修订号。您的构建脚本可以让我们利用它,例如将其嵌入到工件中。
    • Subversion Tagging Plugin 可以自动生成 tag 以成功构建。

    【讨论】:

    • 在 Jenkins 中,我看到以下选择,我应该使用哪一个? 1. 尽可能使用'svn update'。 2. 尽可能使用'svn update',更新前使用'svn revert'。 3. 通过首先删除未版本化/忽略的文件,然后“svn update”来模拟干净签出。 4. 始终检查新副本。
    • 如何使用SVN标签?原始文件上没有标签,那么如何通过标签找到文件呢?
    • 我将从 4 开始。始终检查新副本。如果这需要很长时间,请尝试替代方案。 SVN 标签是特定版本的存储库树的“副本”。通常将它们存储在tags/ 文件夹中(与trunk/branches/ 处于同一级别)。如果你是 subversion 的新手,我建议你略读 The SVN Book,至少是 Tags 章节。
    • This answer 解释了 clearcase 基线和 subversion 标签之间的区别。
    • 我已经阅读了您指出的所有参考资料,还安装了 svn-tag 插件。它在成功构建后创建一个新标签。所以现在我想弄清楚Jenkins的确切构建过程。第 1 步:从主干中签出代码并针对它运行构建。 Step2:使用 svn-tag 插件在构建成功后创建一个标签。 Step3:使用两个标签之间的“svn -diff”生成文件的更改列表。对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    相关资源
    最近更新 更多