如何在第一个错误后停止jenkins在所有节点上的构建

问题描述 投票:0回答:1

我有使用多分支/管道/ Jenkinsfile之类的常规Jenkins安装。

我正在构建的项目是一个C / C ++项目,必须在许多操作系统和体系结构上进行编译。为此,我在jenkins上注册了一堆节点(又称为代理或从属节点),每个节点都针对该操作系统和体系结构的特定组合构建了该项目。

其中许多构建都是并行执行的,这是常识。我现在的问题是这样的:当整个多平台构建中的任何地方发生错误时,我想在所有节点上停止正在进行的[[all

子构建。例如,假设我正在为三件事构建代码:
    macos
  1. Linux aarch64
  2. Windows 10
  3. 如果macos失败,我想自动取消linux和Windows,即使

    in-progress

,因为我知道整个构建都会失败:我将无法发布该版本那些缺少零件的人。
当前,如果macOS失败,Linux和Windows会很乐意继续进行构建,浪费时间用于其他排队的工作,电力和时间。

任何提示都值得赞赏!

更新1:

穷人的解决方案是以长阶段的方式序列化子版本。但这将需要很长时间才能完成构建。所以这不是我的选择

更新2:

更具体的解释:
stages { stage('Checkout') { ... } stage('Build') { parallel { stage ('linux') { ... } stage ('windows') { ... } stage ('mac') { ... } } } stage('Archive and release') { ... } }
如果Mac,Windows或Linux中的任何构建失败,我也希望其余部分也立即中止,不要等待完成

我有一个使用多分支/管道/ Jenkinsfile的常规Jenkins安装程序。我正在构建的项目是一个C / C ++项目,必须在许多操作系统和体系结构上进行编译。 ...

jenkins jenkins-pipeline
1个回答
0
投票
发现它:
© www.soinside.com 2019 - 2024. All rights reserved.