Дженкинс Декларативный трубопровод - СКМ - PullRequest
0 голосов
/ 02 января 2019

Я беру учебник Дженкинса. Пример кода, который я прочитал:

 pipeline {
    agent none
    stages {
        stage('Build') {
            agent {
                docker {
                    image 'python:2-alpine'
                }
            }
            steps {
                sh 'python -m py_compile sources/add2vals.py sources/calc.py'
            }
        }
        stage('Test') {
            agent {
                docker {
                    image 'qnib/pytest'
                }
            }
            steps {
                sh 'py.test --verbose --junit-xml test-reports/results.xml sources/test_calc.py'
            }
            post {
                always {
                    junit 'test-reports/results.xml'
                }
            }
        }
        stage('Deliver') { 
            agent {
                docker {
                    image 'cdrx/pyinstaller-linux:python2' 
                }
            }
            steps {
                sh 'pyinstaller --onefile sources/add2vals.py' 
            }
            post {
                success {
                    archiveArtifacts 'dist/add2vals' 
                }
            }
        }
    }
}

Таким образом, в основном есть три шага Build, Test и Deliver. Все они используют разные изображения для создания разных контейнеров. Но это задание Jenkins настроено на использование Git в качестве SCM.

Так что, если эта сборка Jenkins запущена, говорит, что проект построен на первом контейнере. Затем второй этап - тестирование проекта в другом контейнере, а затем доставка в третьем контейнере. Как эта задача Дженкинса обеспечивает последовательное выполнение этих трех шагов над кодом.

Исходя из моего понимания, каждый этап должен выполнять git clone/git pull, а до его завершения требуется git push.

Если SCM IS настроен через Jenkins для использования Git, нужно ли нам включить функцию Jenkins git clone/git pull', as well as 'git push' in the corresponding shell scripts(under steps , or it it already taken into consideration by the SCM`?

Спасибо

1 Ответ

0 голосов
/ 04 января 2019

В этом случае вы должны убедиться, что двоичный файл в среде QA должен быть таким же, как и в среде UAT, а затем в рабочей среде.Для этого вы должны использовать репозиторий или реестр артефактов (Artifactory, Nexus, Docker Registry и т. Д.) Для продвижения артефактов в производственную среду.Посмотрите эту ссылку и посмотрите, как это было сделано в конвейере.

...