Как вернуть значения окружения в декларативном конвейере jenkins в файл? - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть Jenkinsfile, как показано ниже, и

  • я передаю переменные окружения за этап,
  • хочет создать файл docker.env, используя эти переменные среды,
  • чтобы я мог использовать этот файл docker.env как часть моего запуска docker 'docker run -d --env-file=docker.env java' за этап
  • ищу <command_to_copy_all_values_under_'environment'_to_file_'docker.env'> ???

Jenkinsfile:

pipeline {
  agent any
  stages {
    stage('Staging') {
      environment {
        KEY1_1=VALUE1_1
        KEY1_2=VALUE1_2
        KEY2_1=VALUE2_1
        KEY2_2=VALUE2_2
      }
      steps {
        timestamps() {
          deleteDir()
          sh '''
         <command_to_copy_all_values_under_above_'environment'_to_file_'docker.env'>
             docker run -d --env-file=docker.env java
'''
        }

      }
    }
    stage('Production') {
      when {
        branch 'release'
      }
      environment {
        KEY1_1=VALUE1_1
        KEY1_2=VALUE1_2
        KEY2_1=VALUE2_1
        KEY2_2=VALUE2_2
      }
      steps {
        timestamps() {
          timeout(time: 30, unit: 'MINUTES') {
            input 'Ready to deploy to PRODUCTION, click PROCEED or ABORT ?'
          }
          deleteDir()
          sh '''
             <command_to_copy_all_values_under_above_'environment'_to_file_'docker.env'>
             docker run -d --env-file=docker.env java
'''
        }
      }
    }
  }
  tools {
    maven 'apache_maven_352'
  }
  environment {
        KEY1=VALUE1
        KEY2=VALUE2
        KEY3=VALUE3
        KEY4=VALUE4
  }
}

1 Ответ

0 голосов
/ 28 апреля 2018

Вот решение с AWK:

awk -v B1="block-2" -v B2="block-Y" '/^[^ \t]/ { main=$1; next } main==B1 && $1==B2 { fnd=1; next } $1=="}" { fnd=0 } fnd && $0~/=/ { gsub(/^[ \t]+/,""); print $0 }' YOURFILE

Выход:

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