9

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

pipeline {
  agent any

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

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

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

4

1 回答 1

8

以下管道对我有用:

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..."
      }
    }
  }
}
于 2018-05-02T06:57:22.747 回答