переменные прохождения трубопровода Дженкинса - PullRequest
0 голосов
/ 09 ноября 2018

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

pipeline {
  agent any
  stages {
    stage('Cloning Git') {
      steps {
      git( url: 'https://xxx@bitbucket.org/xxx/xxx.git',
            credentialsId: 'xxx',
            branch: 'master')

      }
    }
    stage('Building Image') {
      steps{
         script {
         env.IMAGE_TAG = sh script: "docker run -e REPO_APP_BRANCH=master -e REPO_APP_NAME=exampleservice -e DOCKER_HUB_REPO_NAME=exampleservice --volume /var/run/docker.sock:/var/run/docker.sock registry.xxxx/build", returnStdout: true

        }
      }
    }

    stage('Integration'){
      steps{
        script{
                echo "passed: ${env.IMAGE_TAG}"
          sh """
            helm upgrade exampleservice charts/exampleservice --set image.tag=${env.IMAGE_TAG}
            """
            sh "sleep 5"


        }
      }
    }

  }
}

производительность трубопровода

[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Integration)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
passed: 
 b79c3bf-b6eec4f


[Pipeline] sh
[test101] Running shell script
+ helm upgrade exampleservice charts/exampleservice --set image.tag=

получение пустого тега изображения

1 Ответ

0 голосов
/ 09 ноября 2018

Вы должны переопределить это, используя 'env'.

Замените ваш код следующим:

pipeline {
  agent any
  stages {
    stage('Cloning Git') {
      steps {
      git( url: 'https://xxx@bitbucket.org/xxx/xxx.git',
            credentialsId: 'xxx',
            branch: 'master')

      }
    }
    stage('Building Image') {
      steps{
         script {
         env.IMAGE_TAG = sh script: "docker run -e REPO_APP_BRANCH=master -e REPO_APP_NAME=exampleservice -e DOCKER_HUB_REPO_NAME=exampleservice --volume /var/run/docker.sock:/var/run/docker.sock registry.xxxx/build", returnStdout: true

        }
      }
    }

    stage('Integration'){
      steps{
        script{
                echo "passed: ${env.IMAGE_TAG}"
          sh """
            helm upgrade exampleservice charts/exampleservice\            
            --set image.tag="${env.IMAGE_TAG}"
            """
            sh "sleep 5"


        }
      }
    }

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