促进构建到不同的环境
我希望能够通过其环境促进构建的最佳方式提供一些指导。
我们有3个环境,DEV,STAGING,PROD。
DEV Jenkins构建运行在持续集成设置中,当代码签入到Subversion时,Jenkins将运行一个新构建(清理,编译,测试和部署)。
棘手的一点是当涉及到STAGING和PROD。
这个想法是能够手动将一个成功的DEV构建推广到STAGING。 STAGING构建会检查DEV的SVN修订版编号,构建,测试,部署到staging并最终在SVN中创建一个分支。
最后,发布经理可以手动将STAGING构建推广到PROD。 PROD构建将从前一个STAGING构建中检出分支,将其部署到PROD并将该分支标记为发布。
我尝试过使用Promotion Builds Plugin和Paramterized Trigger Plugin的组合,但没有运气。 Subversion版本号似乎不会在DEV构建到STAGING构建之间传递。
有没有人对他们的流程有任何指导以促进通过多种环境构建?
在这种情况下,为什么你需要回去并在svn中标记分支? 我们不使用svn,而是使用tfs,当Hudson / Jenkins获取代码时,它检索到的变更集编号位于构建日志中。 所以我们知道这个版本来自哪个代码,并且可以随时回复它。
然后,我们使用Hudson推动从环境到环境的构建,源代码管理系统不需要知道代码的部署位置。
另一种方法是使用Jenkins提供的Artifact存储以及Copy Artifact插件。
这种方法将允许您指定工件,因此Jenkins会在UI中将构建链接在一起,并允许更正式的签署。
如果绝对需要存储SVN版本ID,那么请在您的DEV作业中添加一个构建步骤,将其复制到一个文件中。 像这样的东西:
echo %SVN_REVISION%>revision.ini
或者类似这样的东西:
echo MY_SVN_REVISION=%SVN_REVISION%>revision.ini
然后是工件revision.ini。 在执行STAGING构建时,使用Copy Artifact插件(如前一个用户所述)来检索特定于构建的revision.ini文件并将其加载到变量中。 然后在命令行中使用该变量调用“svn”来构建标记。
链接地址: http://www.djcxy.com/p/53717.html上一篇: Promoting a build to different environments
下一篇: mysql insert after delete fails because of "duplicate entry"