Условно включить опцию декларативного конвейера Jenkins? - PullRequest
0 голосов
/ 27 ноября 2018

Предоставляет ли Jenkins какую-либо функциональность для достижения следующего конвейера, описанного ниже?

pipeline
{
    agent any
    options
    {
        when {
            branch 'master'
        }
        disableConcurrentBuilds()
    }
    stages { ... }
}

У меня есть два состояния для репозиториев, которыми должен управлять этот отдельный конвейер:

  1. Сборка для коммитовдля ветвлений запросов на слияние ( pre-merge ), разрешить одновременный запуск сборок
  2. Построение главной ветви при слиянии запросов на слияние ( post-merge ), не разрешать одновременную сборку.

1 Ответ

0 голосов
/ 26 апреля 2019

Вы можете использовать плагин Lockable Resources , чтобы гарантировать, что проблемные шаги не будут выполняться параллельно в основной ветви.

Что-то вроде:

stage('on master') {
    when {
        branch 'master'
    }
    steps {
        lock(label: 'choose_a_label') {
            // your steps
        }
    }
}


stage('not on master') {
    when {
        not {
            branch 'master'
        }
    }
    steps {
        // your steps
    }
}
...