如何确保在Jenkins中构建和部署作业的git checkout相同?

时间:2014-01-15 16:26:49

标签: jenkins

在Jenkins,我有一个“构建”工作设置来轮询我的git repo并自动构建变更。然后,我将单独的“部署到DEV”,“部署到QA”等工作,这些工作将调用适当部署的Ant构建。目前,这种配置效果很好。

但是,此过程有利于在最新的开发分支上部署最新版本。我使用Copy Artifact插件允许用户选择要部署的构建。此外,构建/部署的Ant脚本是repo的一部分,可能会发生变化。这意味着工件可能在版本之间不兼容。因此,我确保使用相同的git checkout运行构建和部署作业是理想的。

有更简单的方法吗?部署作业应该可以获取从所选构建和签出中使用的git checkout哈希。但是,我没有看到任何选项或插件来执行此操作。

有关如何简化此配置的任何想法?

2 个答案:

答案 0 :(得分:1)

您可以使用Parameterized Trigger Plugin为您执行此操作。直接的方法是使用参数作为构建步骤准备文件,并使用插件将此参数传递给下游作业。您可以将git revision作为参数或其他设置传递。

答案 1 :(得分:1)

Git仓库的细节会有所不同(参见https://stackoverflow.com/a/13117975/466874),但对于我们基于SVN的作业,我们所做的是让构建作业(重新)创建一个SVN标记(具有静态名称,如“ LatestSuccessfulBuild“)成功完成,然后我们将部署作业配置为使用该标记作为其repo URL而不是trunk位置。这可以确保部署总是由构建作业成功构建的任何修订(意味着所有单元测试都通过等),而不是允许更新的中继提交潜入部署构建。