将环境变量传递给jenkins管道bash脚本

时间:2020-06-17 17:12:08

标签: bash jenkins-pipeline

嘿,我试图对环境变量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 个答案:

答案 0 :(得分:1)

这应该有效:

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

注意:要查看shell块可用的所有环境变量,可以使用printenv