Как выполнить команду Git с использованием переменных в пакетном режиме через Jenkinsfile - PullRequest
1 голос
/ 19 апреля 2020

У меня есть следующий контент Jenkinfile, который может создать имя тега, как я хочу, и хранится в переменном теге. Как я могу использовать эту переменную в пакетной команде здесь?

Обратите внимание, что Jenkins находится на машине Windows, поэтому использует команду bat. Я все уши, если есть простой способ, я мог бы переключиться на bash. Но главный вопрос заключается в следующем. Спасибо.

Как я могу использовать эту переменную 'tag' (в которой хранится правильное значение, прежде чем я попытаюсь использовать ее в пакетной команде)? В настоящее время это выходит без всякой ценности с моей реализацией ниже, пытаясь повторить это.

#!/usr/bin/groovy

pipeline{
    agent any
    stages {
        stage('tag stage'){
            steps {
                gitTag()
            }
        }
    }
}

def gitTag(){
    String date = new Date().format('yyyyMMddhhmmss')
    String branch = "${env.GIT_BRANCH}"
    String tag = "v${date}-${branch}"
    tag = tag.replaceAll('/', '-')
    String message = "tagged via jenkins - ${tag}"
    print message

    bat 'echo Hello test'
    bat 'echo from bat before tag %tag% after tag'
    bat 'git tag -a %tag% -m "tagging with %message%"'
    bat 'git push origin %tag%'
}

Ответы [ 2 ]

3 голосов
/ 19 апреля 2020

Кажется из-за одинарной кавычки, groovy не может интерполировать переменную. Также используйте формат ${var}. Следующее должно сделать трюк:

def gitTag(){
    String date = new Date().format('yyyyMMddhhmmss')
    String branch = "${env.GIT_BRANCH}"
    String tag = "v${date}-${branch}"
    tag = tag.replaceAll('/', '-')
    String message = "tagged via jenkins - ${tag}"
    print message

    bat "echo from bat before tag ${tag} after tag"
    bat "git tag -a ${tag} -m \"tagging with ${message}\""
    bat "git push origin ${tag}"
}
0 голосов
/ 19 апреля 2020

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

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