Snapshot工件发布和发布工件发布的最佳实践

时间:2016-09-01 08:41:45

标签: jenkins continuous-integration ivy

我们正在项目中使用IVY,并且我最近设置了Jenkins服务器,以便每次执行中继检查时都会发生以下情况。

  1. Jenkins SCM民意调查检测到变化并通知IVY插件。
  2. IVY插件触发更改模块的ANT构建并触发下游模块的构建。
  3. 然后将构建的模块发布到版本为1.0-SNAPSHOT
  4. 的中央IVY仓库

    trunk上的每个模块ivy.xml都使用rev =“latest.integration”声明依赖关系,而ivysettings.xml文件声明解析器如下。这可确保以后的SNAPSHOTS被下拉到本地IVY仓库。

        <resolvers>
        <chain name="chained" returnFirst="true">
            <filesystem name="libraries" changingPattern="1.0-SNAPSHOT" changingMatcher="exact" checkmodified="true">
                <ivy pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/ivy.xml"/>           
                <artifact pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/[artifact].[ext]"/>
            </filesystem>
        </chain>
    </resolvers>
    

    现在这在使用trunk进行开发时工作正常,但我对如何进行此操作感到困惑,以便我们可以发布发布工件。如果我是正确的,应该永远不要在生产部署中使用SNAPSHOTS吗?

    我在考虑是否要实施周末运行的每周构建并执行以下操作。

    1. 撕掉Jenkins工作区。
    2. 从SVN检出中继。
    3. 运行完整版本并执行所有单元测试。
    4. 如果3为所有模块运行成功,则发布版本化工件,例如-WKYY.1到IVY repo。
    5. 现在,如果步骤1-4是正确的,那么我是否然后TAG SVN并为所有模块创建分支,以便可以检查IVY.xml文件在哪种状态下正确的依赖版本号?

1 个答案:

答案 0 :(得分:0)

我可以分享我们如何设置事物,尽管我们的情况不同。

我们有一个单独的发布版本分支,以及一个单独的作业,它轮询这个分支并从中发布版本。我们的发布过程包括将主分支合并到发布分支。当然,这可以自动化。在您的情况下,如果第3步成功,也许您可​​以这样做。

因此,对于每个项目,我们都有一组处理快照构建的作业(跟踪“master”),以及一组处理发布版本的作业(跟踪“发布”)。这些工作在很大程度上是相似的,但不同。