Смешивать и сопоставлять переменные оболочки с Groovy переменными в Jenkinsfile - PullRequest
0 голосов
/ 21 ноября 2018

Я пробовал различные варианты приведенного ниже кода, похоже, ни один из них не работает

def runScript(command){
    sh '''#!/bin/bash
        file="env.txt"
        while IFS='=' read -r key value
        do
            export ${key}="${value}"
        done < "$file"
        pwd
        "${command}"
    '''
}

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

Есть идеи?

1 Ответ

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

Используйте это

   def runScript(command){
        sh '''#!/bin/bash
            file="env.txt"
            while IFS='=' read -r key value
            do
                export ${key}="${value}"
            done < "$file"
            pwd
        ''' + "${command}"
    }

Одинарные кавычки ''' создадут многострочный сценарий оболочки.Кавычки " получат значение переменной команды и объединят его с помощью сценария оболочки.Обратите внимание, что есть две переменные оболочки key & value и, следовательно, ''' нельзя заменить на """

Ссылки:

Доступ к переменной Groovyиз шага оболочки в конвейере Jenkins

Как передать переменные из Jenkinsfile в команду оболочки

...