web-dev-qa-db-ja.com

シェルスクリプトでJenkinsパラメーターを使用する方法

Jenkinsジョブで定義したパラメーターを、同じジョブのシェルコマンドの引数として使用します。

次のパラメーターを使用してパラメーター化ビルドを作成しました。

high.version: 234
low.version: 220

これらの変数をビルドのシェルスクリプトの引数として使用します。

/bin/bash /hai/mycode/scripts/run_script.sh high.version

同じジョブでこれらのパラメーターをどのように使用しますか?

17
IMRAN SHAIK

本当に助けてくれたのは ハドソン:シェルスクリプトにパラメーターを渡す方法

解決策:変数を小文字で定義しても、変数は大文字です!

14
Florian Straub

Jenkins 環境変数を作成しますパラメーターの名前。

ここでの注意点は、Jenkinsは有効な変数名を表さないパラメーターに対してもalsoすることです-bashでアクセスするのは困難です。これは、bash変数名に.文字を含めることはできないため、この例に当てはまります。

最も簡単な解決策は

  • パラメーターの名前を変更、例: high_versionおよびlow_version(有効なbash変数名)
  • 次に、スクリプトを呼び出すときに対応する変数名を使用します

例:

/bin/bash /hai/mycode/scripts/run_script.sh "$high_version"

パラメータの名前を変更できない場合有効なbash変数名を表すため(例:使いやすさの理由:Jenkinsは、ビルドを開始するためにWebフォームでエンドユーザーに変数名を提示します):引き続きアクセスできますenvコマンドの出力でパラメーター名を削除するによるそのようなパラメーター。

11
Alex O

これを試してみましたか?

echo "function hello() {   " > gg.sh
echo "echo \$1">> gg.sh
echo "}" >> gg.sh
echo "hello \$1"  >> gg.sh
chmod 777 gg.sh

./gg.sh $hello_version

変数名に注意してください。ドットはあまりサポートされていません。詳細については、これを参照できます。 https://issues.jenkins-ci.org/browse/JENKINS-7180​​

0
Tim