Запуск параллелизма для нескольких дополнительных этапов - PullRequest
0 голосов
/ 10 мая 2018

Я использую декларативный конвейер Jenkins и в настоящее время пытаюсь распараллелить часть моего рабочего процесса. В настоящее время мой конвейер работает так, что для создания базы данных существует несколько этапов, каждый из которых зависит от условий, зависящих от параметров, передаваемых в сборку. После этого есть несколько этапов для создания приложения, которые также имеют предложения когда основаны на params. Я пытаюсь поместить обе эти цепочки этапов в параллель, но не могу понять, возможно ли это с помощью декларативного синтаксиса, так как мне бы пришлось либо поставить все этапы параллельно, но это бесполезно, поскольку более поздние этапы, относящиеся к каждому Задача полагаться на более ранние или вкладывать эти этапы в некоторые родительские этапы, которые, как представляется, не поддерживаются декларативным синтаксисом. Я хотел бы выполнить что-то вроде этого. Мы будем благодарны за любую информацию, которая может помочь.

pipeline{
    agent any
    stages{
        stage("Build Systems"){
            parallel{
                stage("Build Database"){
                        stage("DB STEP 1"){
                            steps{
                                echo 'building databse step 1'
                            }
                        }
                        stage("DB STEP 2"){
                            steps{
                                echo 'building databse step 2'
                            }
                        }
                    }
                }
                stage("Build Application"){
                        stage("APP STEP 1"){
                            steps{
                                echo 'building application step 1'
                            }
                        }
                        stage("APP STEP 2"){
                            steps{
                                echo 'building application step 2'
                            }
                        }
                    }
                }
            }
        }
    }
}

1 Ответ

0 голосов
/ 02 июля 2018

Я считаю, что это только что было реализовано с помощью Декларативный конвейер 1.3: Последовательные этапы .

Один из распространенных вариантов использования - запуск сборки и тестирование на нескольких платформах.
Вы уже могли бы сделать это с параллельными этапами, но теперь вы можете запускать несколько этапов в каждой параллельной ветви, что дает вам больше наглядного представления о прогрессе вашего конвейера без необходимости проверять журналы, чтобы точно определить, какой шаг в настоящее время выполняется, где и т. д.

https://jenkins.io/images/post-images/2018-07-02/sequential_stages.png

...