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

Я создаю конвейер Jenkins для простого развертывания в кластер kubernetes, у меня есть свой личный реестр Docker, здесь я просто клонирую свой репозиторий и собираю образ docker, обновляю идентификатор образа сборки docker в манифест развертывания kubernetes и развертываю модуль,но у меня возникают проблемы при передаче идентификатора образа сборки на следующий этап, я провел некоторое исследование и попытался решить его, поэтому мне удалось передать идентификатор на следующий этап, но при попытке добавить новый идентификатор в развертывание он становится пустым.

вот мой конвейер

pipeline {
  environment {
    BUILD_IMAGE_ID = ''
  }
  agent any
  stages {
    stage('Cloning Git') {
      steps {
      git( url: 'https://xxxxxx.git',
            credentialsId: 'id',
            branch: 'master')

      }
    }
  stage('Login Docker Registry') {
      steps{
        script {
            sh 'docker login --username=xxxx --password=xxxx registry.xxxx.com'
        }
      }
    }
    stage('Building Image') {
      steps{
         script {
         def IMAGE_ID = sh script:'docker run -e REPO_APP_BRANCH=xxxx -e REPO_APP_NAME=xxx --volume /var/run/docker.sock:/var/run/docker.sock registry.xxxx/image-build', returnStdout: true
         println "Build image id: ${IMAGE_ID} "
         BUILD_IMAGE_ID = IMAGE_ID.replace("/n","")
         env.BUILD_IMAGE_ID = BUILD_IMAGE_ID

        }
      }
    }

    stage('Integration'){
      steps{
        script{
          echo "passed: ${BUILD_IMAGE_ID} "
          //update deployment manifests with latest docker tag
          sh 'sed -i s,BUILD_ID,${BUILD_IMAGE_ID},g deployment-manifests/development/Service-deployments.yaml'



        }
      }
    }

  }
}

Я не хочу сохранять это значение в файл, читать и выполнять операцию вывода

[Pipeline] echo
Build image id: 
 registry.xxxx.com/service:3426d51-baeffc2


[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Integration)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
passed: 
 registry.xxxx.com/service:3426d51-baeffc2


[Pipeline] sh
[orderservice] Running shell script
+ sed -i s,BUILD_ID,,g deployment-manifests/development/service-deployments.yaml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...