Jenkins 声明式管道:文件更改或创建新分支时的执行阶段



我喜欢仅在某些文件发生更改时才在声明性管道中构建一个阶段。这可以通过以下管道实现:

pipeline {
agent any
stages {
stage('checkout') {
steps {
checkout scm
}
}
stage('build & push container') {
when {
anyOf {
changeset 'Dockerfile'
}
}
steps {
echo "Building..."
}
}
}
}

创建新分支时不会生成此值,因为首次生成分支时,Jenkins 中的变更集仍为空。

如何定义在某个文件更改或创建新分支时构建stagewhen条件?

以下管道为我提供了诀窍:

pipeline {
agent any
stages {
stage('checkout') {
steps {
checkout scm
}
}
stage('build & push container') {
when {
anyOf {
changeset 'Dockerfile'
expression {
return currentBuild.number == 1
}
}
}
steps {
echo "Building..."
}
}
}
}

最新更新