在持续交付中,每个构建都可以交付 。 这个事实意味着,除其他外,要尽可能快地为您的组件分配无快照版本,以便您可以在所有过程中引用它们。 我建议创建一个发布分支,将版本分配给项目,然后启动典型的管道(编译,测试,代码质量……)步骤来发布分支。
如果您使用的是Jenkins ,那么您的构建作业屏幕将类似于:
请注意,我们已经发布了该项目很多次,但是没有一种快速的方法来确切地知道在版本号40中构建了哪个版本。为避免此问题并快速概述了每个构建作业实例中已执行哪个版本,我们可以使用Jenkins description setter plugin 。 该插件根据构建日志文件的正则表达式设置每个构建的描述。 因此,您的构建作业屏幕将类似于:
更好的是,现在我们确切地知道了构建作业的结果以及生成了哪个产品版本。 因此第一步就是通过简单地转到以下步骤来安装插件: Jenkins-> Manage Jenkins-> Manage Plugins-> Available 。 安装后,您可以打开“ 构建作业”配置屏幕,并添加一个名为“ 设置构建描述 ”的构建后操作。 然后添加一个正则表达式以提取版本号。 在这种情况下,正则表达式为: \ [INFO \]从版本0 \ .0 \ .1-SNAPSHOT到(。*)
看一下构建日志文件的下一个片段:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building hello 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.0:set (default-cli) @ hello ---
[INFO] Searching for local aggregator root...
[INFO] Local aggregation root: /jobs/helloworld-inital-build/workspace
[INFO] Processing com.lordofthejars.helloworld:hello
[INFO] Updating project com.lordofthejars.helloworld:hello
[INFO] from version 0.0.1-SNAPSHOT to 1.0.43
Props: {project.version=1.0.43, project.artifactId=hello, project.groupId=com.lordofthejars.helloworld}
在第12行,我们记录了产品的最终版本以执行当前的管道,因此我们创建了一个正则表达式,该行将解析该行并将方括号之间的部分用作修饰符。 根据日志跟踪,正则表达式将与此不同。 在这种情况下,我们始终在开发中使用相同的SNAPSHOT版本,只有在要发布产品时(每天或每晚可能是3次),才生成并设置最终版本。 希望这个插件可以帮助您使构建更加清晰。
参考: Jenkins Description设置器插件,用于改善我们的JCG合作伙伴 Alex Soto的“ 持续交付可见性” ,该博客位于One Jar To Rule Them All博客上。
本文介绍了如何通过Jenkins Description Setter插件改善持续交付的可见性,解决在多版本构建中难以识别具体构建版本的问题。通过设置构建描述,可以清晰地展示每个构建对应的版本信息,提高工作效率。



2508

被折叠的 条评论
为什么被折叠?



