Я беру учебник Дженкинса. Пример кода, который я прочитал:
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`?
Спасибо