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

Tob*_*ost 6 jenkins jenkins-declarative-pipeline

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

pipeline {
  agent any

  stages {
    stage('checkout') {
        steps {
            checkout scm
        }
    }
    stage('build & push container') {
      when {
            anyOf {
                changeset 'Dockerfile'
            }
      }
      steps {
        echo "Building..."
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

当创建一个新分支时,该构建不会建立,因为在第一次构建分支时,Jenkins中的变更集仍然为空。

当某些文件更改或创建新分支时when,如何定义构建条件stage

Tob*_*ost 5

以下管道对我有用:

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..."
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)