Конвейер Jenkins: переведите сообщение github commit в vareable и сохраните его между агентами - PullRequest
0 голосов
/ 16 октября 2018

У меня есть заявленный трубопровод 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'
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...