我希望得到一些关于通过其环境来促进构建的最佳方法的一些指导。
我们有3个环境: DEV、STAGING、PROD。
DEV Jenkins构建在持续集成设置中运行,随着代码签入subversion,Jenkins将运行新的构建(清理、编译、测试、部署)。
棘手的一点是,当涉及到阶段和PROD时。
这个想法是为了能够手动将一个成功的DEV构建升级到STAGING。STAGING build将检查DEV的SVN修订号,构建、测试、部署到staging,最后在SVN中创建分支。
最后,发布经理可以手动将登台版本提升为PROD。PROD build将从先前的STAGING build中检出分支,部署到PROD并将该分支标记为发行版。
我曾尝试使用升级构建插件和参数化触发器插件的组合,但没有成功。Subversion修订号似乎不能在DEV版本到STAGING版本之间传递。
有没有人对在多个环境中促进构建的过程有任何指导?
发布于 2011-07-23 03:13:54
在此场景中,为什么需要返回并在svn中标记分支?我们不使用svn,但使用TFS时,当Hudson/Jenkins获得代码时,它检索到的变更集编号将记录在构建日志中。因此,我们知道构建来自于什么代码,并且可以随时返回到它。
然后我们使用Hudson从环境到环境进行构建,源代码控制系统不需要知道代码部署在哪里。
发布于 2011-09-14 00:34:41
另一种方法是利用Jenkins提供的工件存储与Copy Artifact Plugin结合使用。
构建完成后,您可以指示Jenkins将应用程序持久存储为压缩的zip/tar.gz或作为下游作业的应用程序捆绑包,并使用复制工件从上游作业检索记录的工件(或根据需要使用参数化的builds)
这种方法将允许您对工件进行指纹识别,因此Jenkins将在UI中将构建链接在一起,并允许更正式的签名。
发布于 2011-09-14 03:47:49
如果绝对有必要存储SVN修订ID,那么向DEV作业添加一个构建步骤,将其复制到一个文件中。如下所示:
echo %SVN_REVISION%>revision.ini或者类似这样的东西:
echo MY_SVN_REVISION=%SVN_REVISION%>revision.ini然后是工件revision.ini。在进行阶段构建时,使用Copy Artifact插件(正如前面的用户所提到的)来检索特定于构建的revision.ini文件,并将其加载到变量中。然后在命令行调用"svn“中使用该变量来构建标记。
https://stackoverflow.com/questions/6772646
复制相似问题