Декларативный конвейер Jenkins: этап выполнения при изменении файла или создании новой ветви - PullRequest
0 голосов
/ 01 мая 2018

Мне нравится создавать этап в декларативном конвейере, только когда определенные файлы изменились. Это может быть достигнуто следующим конвейером:

pipeline {
  agent any

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

Не создается, когда создается новая ветвь, так как набор изменений все еще пуст в Jenkins, когда ветка создается впервые.

Как определить условие when, которое создает stage либо при изменении определенных файлов, либо при создании новой ветви?

1 Ответ

0 голосов
/ 02 мая 2018

Следующий конвейер помог мне:

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