У меня есть заявленный трубопровод Jenkins с двумя отдельными контейнерами Docker.И мне нужно использовать сообщение коммитов github и другие данные git в части Post.Из-за двух разных агентов для двух док-контейнеров у меня есть agent none
в верхней части конвейера.Я использую какой-то трюк, чтобы получить сообщение о коммите GitHub.Я не знаю, как это сделать простым способом.
environment {
COMMIT_TEXT = sh (
script: 'git log --format="full" -1 ${GIT_COMMIT}',
returnStdout: true
).trim()
TextComment = 'Text from Variable'
}
Я не могу использовать среду с sh
внутри верхнего уровня с agent none
, поэтому мне нужно передать переменные в часть Past otherпуть.Есть идеи?Спасибо.
pipeline {
agent none
/* --- i can not use "sh" there becouse in can not to be ececuted with 'agent none'
environment {
COMMIT_TEXT = sh (
script: 'git log --format="full" -1 ${GIT_COMMIT}',
returnStdout: true
).trim()
TextComment = 'Text from Variable'
}
*/
stages {
stage('build container up') {
agent {
docker {
image 'container:local'
}
/* --- there is no reason to put variable there, becouse it will be dead with the container before Post processing.
environment {
COMMIT_TEXT = sh (
script: 'git log --format="full" -1 ${GIT_COMMIT}',
returnStdout: true
).trim()
TextComment = 'Text from Variable'
}
*/
}
stages {
stage('Build') {
steps{
git branch: 'testing-jenkinsfile', url: 'https://github.com/...git'
}
}
}
}
stage('Build image') {
steps {
script {
docker.build("walletapi:local")
}
}
}
stage('Run service container'){
agent {label 'master'}
steps {
sh 'docker run -it -d --name container01 \
container01:local'
}
}
}
}
post {
always {
script {
sh 'env'
}
}
}