我喜欢只在某些文件发生变化时才在声明性管道中构建一个阶段。这可以通过以下管道来实现:
pipeline {
agent any
stages {
stage('checkout') {
steps {
checkout scm
}
}
stage('build & push container') {
when {
anyOf {
changeset 'Dockerfile'
}
}
steps {
echo "Building..."
}
}
}
}
当创建新分支时,这不会构建,因为在第一次构建分支时,Jenkins中的变更集仍为空。
如何在某个文件发生更改或创建新分支时定义构建when
的{{1}}条件?
答案 0 :(得分:3)
以下管道为我做了诀窍:
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..."
}
}
}
}