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

时间:2018-05-01 08:39:11

标签: jenkins jenkins-declarative-pipeline

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

pipeline {
  agent any

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

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

如何在某个文件发生更改或创建新分支时定义构建when的{​​{1}}条件?

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..."
      }
    }
  }
}