当前位置: 首页 > 知识库问答 >
问题:

Jenkins 在 Jenkins 交付管道视图中提升构建

贺华容
2023-03-14

我有不同的 Jenkins 管道作业,用于构建、部署、QA 自动化测试和发布到生产环境。我正在构建一个 Jenkins Delivery 管道,以便在单个管道中运行这些作业。管道应该类似于 QA 认证完成后,应触发生成作业进行审批,然后发布准备作业可以进一步运行。流量应该是这样的:

  • 在开发分支上使用Jenkinsfile在单个管道作业中运行Build、Junit和SonarQube分析
  • 在上述作业稳定或成功后运行QA部署作业。
  • 在QA环境中运行QA Automation作业
  • 在这里,我希望在发布分支上启动发布过程之前,先促进一个构建以供批准
  • 一旦促销获得批准,就会触发发布版本控制/标记作业
  • 运行生产发布作业。

所有上述作业都需要显示在视图(管道)中。

我使用Jenkins查看交付管道插件中的“Jenkins管道的交付管道视图”。但是,问题是促进构建是一个FreeStyle作业,它没有列在这种视图类型下。

实际上,我尝试使用多分支管道使用 Jenkinsfile 进行端到端管道,但由于 https://issues.jenkins-ci.org/browse/JENKINS-36089 的限制,我必须切换回正常的 Pipeline。

请分享你的想法。

共有1个答案

空正豪
2023-03-14

如果可行的话,没有Jenkins管道和Jenkinsfiles,你也可以实现你想要构建的东西?在这种情况下,将流水线中的每个步骤(构建、QA、生产等)定义为独立的Jenkins freestyle作业。通过“在其他项目上触发参数化构建”的构建后操作,将这些作为下游依赖项链接在一起。然后,您可以通过创建“交付管道视图”类型的视图来可视化您的整个管道,从而使用交付管道插件。它也支持显示手动触发器。

您可以在交付管道插件源代码库中找到如何创建此类管道的示例:https://github.com/Diabol/delivery-pipeline-plugin/blob/master/examples/.演示。groovy使用Jenkins JobDSL为您正在寻找的管道类型创建了一个框架。

遗憾的是,“Jenkins 流水线的交付流水线视图”不支持将多个 Jenkins 流水线链接在一起的可视化,它目前只可视化每个组件一个流水线。最新的当前版本是交付管道插件1.3.1。

 类似资料:
  • 在Jenkins管道中,我使用构建步骤触发其他几个作业,并向其传递一些参数。除了管道之外,我在可视化我触发的不同工作时遇到了问题。我已经设置了Jenkins Delivery Pipeline插件,但是它的文档非常模糊,我只能可视化管道中的步骤,尽管用阶段和任务名称标记作业。 例子: 我在Jenkins中有两个作业作为管道/工作流作业,具有以下管道脚本: 工作坊: 作业栏: 我如何使它也显示在工作

  • 我正在尝试从管道中自动创建Jenkins管道构建。 我有一个管道,它创建一个比特桶存储库并向其提交一些代码,包括一个Jenkinsfile。 我需要向此管道添加另一个步骤,然后为其创建管道生成,这将运行 Jenkinsfile 中的步骤。 我认为Jobs DSL应该能够处理这一点,但我找到的文档非常稀少,我仍然不完全确定是否有可能或如何做到这一点。 任何帮助都将不胜感激。我想生成的Pipeline

  • 问题内容: 当它成功时,我正在尝试在Jenkins CI中进行构建后提交。 有没有办法做到这一点? 我的问题是,当我构建它时,我需要在工作区中生成一些dll提交给svn。 问题答案: 这取决于您用来构建源代码的构建技术(例如Ant,Maven,MSBuild或FianlBuilder)。要将生成结果检入到svn中,应在生成脚本的末尾添加一些新步骤。这一步只会将您的构建结果添加到svn中。例如,您的

  • 我正在努力在将提交添加到GitHub上的特定分支时触发Jenkins Pipeline作业。 我在詹金斯工作选项上没有看到合适的构建触发器,就像詹金斯自由式工作一样。 如何将Jenkins管道作业设置为在使用新提交更新分支时触发? 到目前为止,我还没有找到这个场景的明确答案,只有在提交到master时触发Jenkins管道作业,只有关于多分支作业的答案。 任何关于这个问题的帮助将不胜感激!

  • 我刚开始使用Jenkins声明性管道。在我支持一些类似的项目时,我考虑将类似的管道步骤(甚至阶段)放入可重用的构建块中。这些区块应保持在一个中心点,然后由单独的管道包括在内(例如:干燥)。 我将共享库视为脚本化管道的一个选项,但我不确定它是否也适用于声明性管道。 你知道在Jenkins声明性管道中使用像构建块这样的东西的方法吗? 举例说明: 如果您有一个用于Maven项目的标准管道(例如Sprin

  • 我有一个由github网络钩子触发的JenkinsPipeline作业,因此在提交到Github时会触发构建。但是,我只希望在向master分支提交时触发构建。目前,任何提交都会触发构建,即使提交是在功能分支上进行的。 有没有办法在不诉诸多分支工作的情况下实现这一点? 我在Jenkins配置、jenkinsfile或Github repo的webhook中看不到任何过滤分支(触发器)的方法。 我能