2016-11-30 2 views
2

Упрощенный трубопровод будет выглядеть примерно так:Дженкинс трубопровод непрерывной поставки пропустить этап на основе входных данных

1. build 
2. unit test 
3. deploy to dev 
4. integration tests 
5. deploy to prod 

На шаге 5 я установки команды ввода трубопровода Дженкинс. Мы не будем развертывать prod при каждой фиксации, поэтому, если мы прекратим все эти задания, у него будет большой список серой сборки. Возможно ли иметь вариант пропуска, поэтому сборку можно показать как зеленый синий?

ответ

3

Не можете ли вы сделать что-то подобное, оно будет синим/зеленым независимо от того, что вы выберете из ввода, и затем вы можете запустить развертывание в зависимости от этого?

def deploToProduction = true 
try{ 
    input 'Deploy to Production' 
}catch(e){ 
    deployToProduction = false 
} 

if(deployToProduction){ 
    println "Deploying to production" 
} 
+0

Я освободил этот ответ быстро. Это не работает! –

-2

Вместо использования конвейера как функции Jenkins2 кода вы можете настроить Работы с конфигурацией downstream/upstream.

Build -> тест Unit -> Развертывание Девы -> Интеграционные тесты -> Содействие в Prod -> Deploy подталкивать

В настоящее время он дает больше контроля, чтобы выбрать, какой вариант трубопровода вы хотите Prod. Для большей видимости вы можете настроить трубопровод доставки с помощью модуля поставки-трубопровод.

0

Существует лучшее решение, которое я только что нашел. Вы можете получить доступ к результату ввода, используя возвращаемое значение. Пользователь должен установить флажок, чтобы запустить дополнительный этап. В противном случае шаги этапа пропускаются. Если вы пропустите весь этап, сцена исчезнет и «очистит» историю сцен.

stage('do optional stuff?') { 
    userInput = input(
     id: 'userInput', message: "Some important question?", parameters: [ 
     booleanParam(defaultValue: false, description: 'really?', name: 'myValue') 
    ]) 
} 

stage('optional: do magic') { 
    if (userInput) { 
     echo "do magic" 
    } else { 
     // do what ever you want when skipping this build 
     currentBuild.result = "UNSTABLE" 
    } 
} 
Смежные вопросы