Как определить несколько переменных среды из одного вывода скрипта sh - PullRequest
1 голос
/ 10 апреля 2019

Мне нужно запустить инструмент в блоке sh, который устанавливает несколько переменных среды. Затем мне нужно экспортировать эти переменные среды из шага sh в шаг withEnv, чтобы он был доступен для другого шага.

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

stage('Example') {
    steps {
        // Run the tool that generates the eval block
        sh 'some-tool'
        // Generates output like:
        // TOKENA='foo'; TOKENB='bar'; export TOKENA; export TOKENB; echo "success"

        // This is where I need help. 
        // How to translate the script output from above into variables
        // So that I can make them available to the ansiblePlaybook step.
        withEnv([TOKENA=TOKENA, TOKENB=TOKENB]) {
            ansiblePlaybook( 
                // ... irrelevant details
            )
        }
    }
}

Код, который я предоставил, неполон. Я не ожидаю никаких результатов от этого.

1 Ответ

0 голосов
/ 10 апреля 2019

все, что у вас есть, это оболочка. включая вывод от some-tool.

так почему бы не поместить это some-tool внутрь ansible?

однако, если вы могли бы сделать some-tool вывод только в качестве назначения токена, то следующий код будет работать

def env = new ConfigSlurper().parse(" TOKENA='foo'; TOKENB='bar'; ")
...