基本的にファイルからシェルにプロパティを渡そうとしています。パイプラインのファイルへの引数の受け渡し
私はここで、ワークスペース
IMAGE_NAME='Docker-image'
IMAGE_VERIONS='Docker-1.3.5'
で次の内容のファイル "docker_info" を持っているが、私のパイプラインスクリプトです:
node
{
load "${WORKSPACE}/docker_info"
sh " echo ${IMAGE_NAME}" // here getting expected output: Docker-image
stage('Executing SHELL SCRIPING TO CHECK DOCKER IMAGE')
sh '''
echo "$DOCKER_IMAGE"
if [ -z "${IMAGE_NAME}" ] //(also tried "$IMAGE_NAME")
then
echo "Docker image not found."
exit 0
fi
echo "${IMAGE_NAME}:started pushing image"
'''
}
OUTPUT:
[Test_BUILD_PIPELINE] Running shell script
+ echo Docker-image
Docker-image
**Entering stage Executing SHELL SCRIPTING TO CHECK DOCKER IMAGE**
Proceeding
[Pipeline] sh
[Test_BUILD_PIPELINE] Running shell script
+ echo ''
+ '[' -z '' ']'
+ echo 'Docker image not found. Skip pushing Docker image'
Docker image not found. Skip pushing Docker image
+ exit 0
親切後に注意してくださいステージに入る私は期待していないだろうエコー "
私はいくつかの方法で試してみましたが、それはうまくいきませんでした。
二重引用符と一重引用符の違いのようです。 –
シェルの下で一重引用符echo '{IMAGE_NAME}'に置き換えても、動作しませんでした。 –
一重引用符で置き換えようとしましたが、シェルの下にある '{IMAGE_NAME}'をエコーしてプロパティファイルの値を一重引用符に置き換えてもうまくいきませんでした。私がsh "echo $ {IMAGE_NAME}"を使用して期待される出力を得たときの興味深い点を教えてください。 $ {IMAGE_NAME} "'' ' - エコーをエコーします。おそらく、ファイルから内容を読み取ることができません。パイプラインでシェルコマンドのグループを実行できるようにするための方法はありますか?何かアドバイス? –