我正在制定一项策略,在我的持续集成和交付管道中标记构建。当产生新的构建时,它将经历多个阶段的测试;在每个阶段之后,我想标记构建。我的想法是扩展标准的Maven系统,所以一个例子是:
my-artifact-1.0-SNAPSHOT.jar
my-artifact-1.0-PASSED_TESTS_1.jar
my-artifact-1.0-PASSED_TESTS_2.jar
...
my-artifact-1.0-RELEASE.jar
当构建通过每个阶段时,其标记(其名称/版本的一部分)会更新。最后,在所有测试阶段之后,使用RELEASE将构建标记为可释放。
我正在使用Jenkins服务器并在Maven存储库中的Artifactory(非Pro)上存储工件。我的计划是为上面的每个标记类型使用单独的Maven存储库,并在更新标记时将工件从一个移植到另一个。
我的促销伪代码如下:
(1) Download artifacts that passed in Jenkins
(2) Text-replace the tag (maybe pom.xml as well?)
(3) Upload to new repository
(4) Update the associated Git commit with tag also
我不确定如何干净利落地实现这一点 - 这是一种常见的做事方式吗?我错过了重要的事吗? Jenkins + Artifactory(非Pro)+ Maven(仅限repos,Gradle for builds)系统可以实现这一目标吗?
谢谢!