Передать переменную среды в сценарий jenkins pipeline bash - PullRequest
0 голосов
/ 17 июня 2020

Привет, я пытаюсь внести изменения в переменную среды GIT_BRANCH и проанализировать правую часть /, я знаю, что это может быть достигнуто с помощью сокращения следующим образом: $(echo ${env.GIT_BRANCH} | cut -d \"/\" -f 2 )

Дело в том, что невозможно сделать он работает в конвейерах Jenkins, ошибка: неправильная подстановка

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                sh "docker build -t jpq/jpq:test ."
            }
        }
        stage('Test') {
            steps {
                sh  "docker run jpq/jpq:test python3 tests.py"
            }
        }
         stage('Push') {
             steps {
                sh '''#!/bin/bash
                  BRANCH=\$(echo \${env.GIT_BRANCH} | cut -d \"/\" -f 2 )
                  echo ${BRANCH}
                  docker tag jpq/jpq:test jpq/jpq:${BRANCH}
                  docker push jpq/jpq:test
                    '''
             }
         }
        // stage('Deploy') {
        //     steps {
        //     }
        // }
    }

}

Как правильно сгенерировать переменную BRANCH и передать ее в тег docker?

1 Ответ

1 голос
/ 17 июня 2020

Это должно работать:

stage('Push') {
     steps {
        sh '''#!/bin/bash
            #printenv
            BRANCH=$(echo ${GIT_BRANCH} | cut -d "/" -f2)
            echo "Branch: ${BRANCH}"
        '''
    }
}

Примечание. Чтобы увидеть, какие переменные среды доступны для блока оболочки, вы можете использовать printenv.

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