Передача переменных, извлеченных из оболочки в Jenkinsfile - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь передать переменные, извлеченные на этапе в Jenkinsfile, между этапами. Например:

   stage('Dummy Stage') {
    sh '''#!/bin/bash -l
        export abc=`output of some command`
        .....
        .....
       '''

Теперь, как я могу передать переменную abc на следующий этап? Я попытался установить переменную, добавив раздел def в верхней части файла, но похоже, что он не работает. В отсутствие более аккуратного способа, мне приходится перепечатывать команды

Ответы [ 2 ]

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

Вот что я делаю, чтобы получить число коммитов на master как глобальную переменную среды:

pipeline {

    agent any

    environment {
        COMMITS_ON_MASTER = sh(script: "git rev-list HEAD --count", returnStdout: true).trim()
    }

    stages {

        stage("Print commits") {
            steps {
                echo "There are ${env.COMMITS_ON_MASTER} commits on master"
            }
        }
    }
}
0 голосов
/ 05 июля 2018

Вы можете использовать более длинную форму шага sh и вернуть результат (см. https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-%20shell%20script). Ваша переменная должна быть определена вне рамок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...