如何配置Jenkins多分支管道,以便在单个Jenkinsfile中为分支和拉取请求使用具有不同参数的选项?

6g8kf2rb  于 2023-06-05  发布在  Jenkins
关注(0)|答案(1)|浏览(199)

我正在使用声明式jenkins多分支管道,我想使用

  • 构建分支options { disableConcurrentBuilds(abortPrevious: false) }
  • 构建pull requests时为options { disableConcurrentBuilds(abortPrevious: true) }

期权
disableConcurrentBuilds
不允许管道的并发执行。可以用于防止对共享资源等的同时访问。例如:options { disableConcurrentBuilds()}在已经有正在执行的Pipeline构建时将构建排队,或options { disableConcurrentBuilds(abortPrevious:true)}中止正在运行的构建并开始新的构建。
是否可以配置Jenkins多分支管道,以便基于单个Jenkinsfile中的分支类型为disableConcurrentBuilds()选项使用不同的参数?
就像在Azure管道中使用批处理和自动取消一样:

trigger:
  batch: true #waits until the run is completed, then starts another run
  branches:
    include:
      - main
pr:
  autoCancel: true #cancel in-progress runs for the same PR Defaults to true
  branches:
    include:
      - '*'
anhgbhbe

anhgbhbe1#

在构建拉取请求时,Jenkins定义了一个名为CHANGE_ID的环境变量。您可以使用它来设置布尔参数:

options { 
    disableConcurrentBuilds(abortPrevious: env.CHANGE_ID ? true : false) 
}

相关问题