java - 管道和发布与快照构建

标签 java maven jenkins continuous-integration

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

最佳答案

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

  • 与同事一起玩并展示给同事的 SNAPSHOT
  • 一个版本,如果它通过所有测试就应该投入生产。

在纯 CI 中,每个提交都应该是一个可能的发布,因此上述两者之间的区别变得困难。你可以——我有些人这样做——只在进行自动提交触发构建构建时生成 SNAPSHOT 构建。然后构建仅用于反馈,但不打算以后使用。当您的硬盘出现问题时,这也可以更轻松地删除它们。在这种情况下,您将手动启动发布构建。

如果你想更像 CI,你可以将每个提交都视为潜在的发布并给出一个发布号。是否运行所有测试取决于您。如果您的测试花费的时间太长,您可以告诉 Jenkins 您的自动管道只运行到“alpha”级别,并且“alpha 到 beta”管道在必要时仍会手动启动。

有人会说,你应该总是运行所有的测试并保留所有的版本,而且硬件很便宜,你可以很容易地建立一个集群。这些人可能从未见过大型官僚公司的内部。

关于java - 管道和发布与快照构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47414640/

相关文章:

java - 如何优化 Google App Engine 应用程序的 Spring Framework 使用

java - 使用 "batch"绘制的文本被使用 "renderer"绘制的矩形隐藏

java - 在集成测试中使用 EntityManager/EMF 的替代生成器

jenkins - 部署在服务器上的服务(Jenkins 和 Apache Tomcat)的 Cent OS 防火墙问题

java - Jenkins 构建失败并且浏览器未在 Linux 上启动但在本地计算机上运行

java - Java 中最准确的时间类型?

java - 无法获取时间戳值

spring - 如何在使用第三方 Web 服务时使用 PayloadLoggingInterceptor 和 SOAPLoggingInterceptor 拦截器

java - 失败 - 上下文路径/j2eeapplication 中的应用程序无法启动

jenkins - 如果另一个作业处于失败状态,如何跳过 Jenkins 中的作业