Как получить значение переменной среды в Jenkins - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь внедрить переменную окружения на этапе сборки Invoke Maven, значение которой было установлено на этапе предварительной сборки через Execute Shell

    #!/bin/bash
    ipAddressHub=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-hub)
    echo $ipAddressHub
    echo 'ipAddress=$ipAddressHub' > ipAddress.properties

Теперь я хочу получить значение ipAddress хранится в ipAddress.properties.Я использую Inject environment variables после Execute Shell и предоставляю ipAddress.properties в Properties File Path поле (не уверен, что это правильный путь), а затем я использую шаг сборки Invoke Maven Artifactory и предоставляю команду ниже.

   clean install -DipAddress=${ipAddressHub} -Denv=${env} -Durl=${appURL} -DserverIP=${ipAddress}

Но я не получаю значение в serverIP, вместо этого я получаю ${ipAddressHub} в консоли.Я знаю, что делаю какую-то ошибку, кто-нибудь может указать, какой путь правильный?

Ответы [ 2 ]

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

Я не использовал плагин (по крайней мере, некоторое время), и я собирался предположить, что вы просто ссылаетесь на него неправильно?

Я полагаю, что если вы добавляете его как переменную среды (и вы можете проверить его добавление, нажав на Переменные среды в левой части экрана сборки).

Вы должны иметь возможность ссылаться на него, как показано ниже?

${env.ipAddressHub}

Это еще не проверено. Просто ухожу из памяти.

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

Некоторый просмотрел и нашел ответ на него.

Вы можете вставлять переменные только в строки в двойных кавычках.Таким образом, проблема была

echo 'ipAddress=$ipAddressHub' > ipAddress.properties

изменил его на

echo 'ipAddress='"$ipAddressHub"'' > ipAddress.properties

И он работал как шарм

...