Есть ли способ передать переменные из скрипта bash в Jenkinsfile без использования дополнительных плагинов - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь использовать переменные, объявленные в скрипте bash, в моем Jenkinsfile (конвейер jenkins) без использования дополнительных плагинов, таких как плагин EnvInject Пожалуйста, помогите, любая идея будет оценена

Ответы [ 2 ]

1 голос
/ 02 июля 2019

вам нужно вывести эти переменные в файл типа Property/Yaml file.Затем используйте шаг конвейера readProperties / readYaml для чтения в Map в Jenkinsfile.

steps {
    sh'''
      ...

      AA=XXX
      BB=YYY

      set > vars.prop
    '''

    script {
        vars = readProperties file: 'vars.prop'

        env << vars // merge vars into env

        echo 'AA='+ env['AA']
    }
}
0 голосов
/ 05 июля 2019

Я сделал это с помощью чего-то подобного: вы можете сохранить переменные внутри Shell в файле внутри рабочей области, а затем выйти из блока оболочки, прочитать файл в groovy, чтобы загрузить пару значений ключа в вашу среду

Что-то вроде:

            def env_file = "${WORKSPACE}/shell_env.txt"
            echo ("INFO: envFileName = ${env_file}")
            def read_env_file = readFile env_file
            def lines = read_env_file.readLines()
            lines.each { String line ->
                def object = line.split("=")
                env.object[0] = object[1]
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...