有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java管道和版本与快照构建

我想使用jenkins管道进行持续集成,但不是cd,我仍在使用maven的快照和发布模型。 如何根据某些条件使管道执行发布版本或快照版本? 还有,你是如何触发一些事情的,比如在其他平台上进行测试,集成测试,等等,只是有时候?我不希望每次提交时都要在windows上进行长时间的测试和耗费大量资源的启动


共 (3) 个答案

  1. # 1 楼答案

    一种方法是基于分支名称。我们在git中有释放分支,比如v1.0_release,我们还有整数分支:v1.0_integ

    我们在分支名称上设置了一个带有when子句的多分支管道。当分支名为*_release时,我们将该构建交付给发布工件repo。其他分支机构转到快照回购

    任何时候,任何其他分支被推到git上(比如功能分支),它们也会被构建,并且根据应用程序的不同,我们通常只在Jenkins中归档这些构建。这为开发者提供了关于他们使用的任何分支的快速反馈,以及对工件的轻松访问

    开发人员可以在他们想要的任何分支中使用任何代码,当他们喜欢这些代码并准备好构建一个候选版本时,他们会推到发布分支,Jenkins会处理它

  2. # 2 楼答案

    我决定的是:我不区分有和没有集成测试的构建。它们会运行很长时间,尤其是在windows和linux上运行,但不确定我是否有理由用另一种方式运行,你怎么看

    至于快照和发布版本之间的区别:maven使用概要文件在发布版本上执行特殊操作。但是,当在distributionManagement中决定是部署到快照还是发布存储库时,maven会使用版本号来检查部署到哪里。因为您无法基于当前项目版本激活配置文件,所以我决定将其合并,因为如果您有快照版本,则肯定不会发布,如果您的pom有发布版本,则不会生成快照。因此,发布是通过手动将pom设置为发布版本并提交来触发的,此时ci将读取pom,检查版本是否以“-SNAPSHOT”结尾,如果不是,将激活发布配置文件并执行其他仅发布的操作,比如部署maven站点

  3. # 3 楼答案

    欢迎来到不那么平凡的持续整合世界。当您使用传统的手动触发构建服务器上的构建时,您可以选择是否构建

    • 一个可以播放并向同事展示的快照
    • 一个版本,如果它通过了所有测试,就应该投入生产

    在纯CI中,每个提交都应该是一个可能的发布,因此很难区分上面两个。你可以——我也有人这么做——只在执行自动提交触发器生成时生成快照生成。然后,构建只用于反馈,而不用于以后。这也使得在硬盘出现问题时更容易删除它们。在这种情况下,您将手动启动发布版本

    <>如果你想变得更像CI,你可以把每个提交看作是潜在的发布,并给出一个发布号。是否运行所有测试取决于您。如果测试耗时过长,您可以告诉Jenkins,您的自动管道只运行到“alpha”级别,“alpha到beta”管道仍会在必要时手动启动

    有些人会说,您应该始终运行所有测试并保留所有版本,而且硬件很便宜,您可以轻松构建集群。这些人可能从未见过大型官僚公司的内部