我希望就通过环境促进构建的最佳方式提供一些指导。
我们有3个环境,DEV,STAGING,PROD。
DEV Jenkins构建正在持续集成设置中运行,因为代码已签入subversion,Jenkins将运行新构建(清理,编译,测试,部署)。
棘手的一点是STAGING和PROD。
这个想法是能够手动将成功的DEV构建推广到STAGING。 STAGING构建将检查DEV的SVN版本号,构建,测试,部署到分段,最后在SVN中创建分支。
最后,发布经理可以手动将STAGING构建推广到PROD。 PROD构建将从先前的STAGING构建中检出分支,部署到PROD并将分支标记为发布。
我曾尝试使用Promotion Builds插件和Paramterized Trigger插件的组合,但没有运气。 Subversion修订版号似乎没有在DEV构建到STAGING构建之间传递。
有没有人对他们通过多种环境推广构建的流程有任何指导?
答案 0 :(得分:3)
另一种方法是利用Jenkins提供的Artifact存储加上Copy Artifact Plugin。
这种方法允许您指纹工件,因此Jenkins会在UI中将构建链接在一起,并允许更正式的签名。
答案 1 :(得分:2)
在这种情况下,为什么需要返回并在svn中标记分支?我们不使用svn,但是使用w / TFS,当Hudson / Jenkins获取代码时,它检索到的变更集编号在构建日志中。所以我们知道构建来自哪些代码,并且可以随时回复它。
然后我们使用Hudson促进从环境到环境的构建,源代码控制系统不需要知道代码的部署位置。
答案 2 :(得分:0)
如果绝对需要存储SVN版本ID,则向DEV作业添加一个构建步骤,将其复制到文件中。像这样:
echo %SVN_REVISION%>revision.ini
或类似的东西:
echo MY_SVN_REVISION=%SVN_REVISION%>revision.ini
然后是artifact revision.ini。在进行STAGING构建时,使用Copy Artifact插件(如前一个用户所述)检索特定于构建的revision.ini文件并将其加载到变量中。然后在命令行调用“svn”中使用该变量来构建标记。