Как мне выполнить один конвейер, даже если другой отказал в jenkins? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть следующий (часть a) конвейер

stages {
    stage('bootstrap') {
        parallel {
            stage("Linux") {
                agent { label 'linux' }
                steps {
                    sh 'bootstrap.sh'
                }   
            }   
            stage("Windows") {
                agent { label 'Windows' }
                steps {
                    bat 'bootstrap.bat'
                }   
            }   
        }   
    }   

    stage('devenv') {
        parallel {
            stage('Linux') {
                agent { label 'linux' }
                steps {
                    sh 'devenv.sh'
                }   
            }   
            stage('Windows') {
                agent { label 'Windows' }
                steps {
                    bat 'devenv.bat'
                }   
            }   
        }   
    }     
}   
post {
    always {
        echo "Done"
    }   
}   

Проблема заключается в том, что когда bootstrap .bat завершается ошибкой на windows, шаг devenv теперь считается неудачным, а linux devenv не будет продолжаться. Я хотел бы получить результаты конвейера linux, даже если один windows рано выходит из строя.

Можно было бы разделить этапы так, чтобы полный конвейер linux находился в одной ветви параллельное выполнение, а windows - с другой, но, возможно, есть хитрость, о которой я не подозреваю, потому что я попробовал ее, и она не выглядит приемлемым синтаксисом.

Редактировать

Предлагаемое исправление не работает. Это конвейер

pipeline {
    agent none
    parallel {
        stage('Linux') {
            agent { label 'linux' }
            stages {
                stage('bootstrap') {
                    sh "ls"
                }
                stage('devenv') {
                    sh "ls"
                }
            }
        }
        stage('windows') {
            agent { label 'Windows' }
            stages {
                stage('bootstrap') {
                    bat 'dir'
                }
                stage('devenv') {
                    bat 'dir'
                }
            }
        }
    }

}

Это сообщение об ошибке

WorkflowScript: 8: Undefined section "parallel" @ line 8, column 5.
       parallel {
       ^

WorkflowScript: 1: Missing required section "stages" @ line 1, column 1.
   pipeline {
   ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...