Как я могу сослаться на имя репозитория Jenkins Github из Execute Shell? - PullRequest
1 голос
/ 08 марта 2019

В разделе «Управление исходным кодом» задания Дженкинс я вижу, что существует Имя.

Могу ли я сослаться на это имя в разделе «Выполнение сценария» с помощью переменной среды?

enter image description here

Я прочитал документацию для Git Plugin , однако здесь нет информации о том, как ссылаться на данное Имя.

Это было бы невероятно полезно, так как я хочу иметь разные переменные для каждого репозитория Git, и использование этой переменной было бы идеальным.

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Если ваше определение задания находится в Jenkinsfile, будь то в качестве декларативного или скриптового конвейера, вы можете создавать глобальные или поэтапные переменные среды внутри блока среды.

Динамические переменные среды могут создаваться динамически в результатешаг оболочки или скрипт Groovy или функции, см. ниже пример декларативного синтаксиса конвейера, взятого из документации здесь

pipeline {
    agent any 
    environment {
        // Using returnStdout
        CC = """${sh(
                returnStdout: true,
                script: 'echo "clang"'
            )}""" 
        // Using returnStatus
        EXIT_STATUS = """${sh(
                returnStatus: true,
                script: 'exit 1'
            )}"""
    }
    stages {
        stage('Example') {
            environment {
                DEBUG_FLAGS = '-g'
            }
            steps {
                sh 'printenv'
            }
        }
    }
}

В вашем случае вы хотите получить значение Nameпредоставляется в разделе «Управление исходным кодом», который, как я видел в , не так прост, как получить имя репо в потоке Jenkins pipe , и в этом случае имя извлекается из самого URL-адреса git, а не из пользовательского имени.

, если вы используете декларативный подход конвейера, мне интересно, возможно ли это, и имело бы смысл определить некоторые строковые переменные, чтобы просто хранить собственные имена ваших репозиториев, и использовать эти переменные для обоих, использовать их какзначение параметров для шага оформления заказа, дополнительная информация здесь идругой рукой присваивают значения переменных среды в блоке среды

0 голосов
/ 09 марта 2019

Я обнаружил, что не существует переменной среды для доступа только к этому имени.

Когда используется имя, имя ветви среды из GitHub использует Имя, где origin или remote обычно находятся вфирменное имя.Например, если имя ветви GitHub равно mynewfeature, среда Jenkins будет понимать это имя ветви как CustomName/mynewfeature

${GIT_BRANCH}, возвращающее CustomName/mynewfeature, что позволяет переменной Name быть доступной в действии «Выполнить скрипт»Дженкинс.

...