web-dev-qa-db-ja.com

シェルスクリプトからジェンキンに変数を渡す

Jenkinsからシェルスクリプトをトリガーします。このスクリプトは日付を取得し、環境(Linux)変数$ DATEとしてエクスポートします。同じJenkinsジョブ内でこの$ DATEを使用する必要があります。パラメータビルドとして仕事をしました。 DATE = $ DATEとして、DATE値として文字列パラメーターを作成しました。しかし、それは機能していません。

提案してください !!

33
user3232823

シェルスクリプトでDATE環境変数をエクスポートしているとおっしゃっていますが、これはおそらく「シェルの実行」ステップを介して開始されています。

問題は、シェルステップが完了すると、その環境がなくなることです。変数は後続のビルドステップに引き継がれません。
そのため、後で$DATE value —別のビルドステップで、または別のジョブのパラメーターとして—特定の環境変数はもう存在しません。

代わりにできることは、ビルド中に環境変数をエクスポートするために EnvInjectプラグイン を使用することです。このプラグインを使用して設定された変数は、以降のすべてのビルドステップで使用できます。

たとえば、1つのビルドステップでDATEをプロパティフィールドに書き込むことができます。

echo DATE=$(date +%Y-%m-%d) > env.properties

次に、「ジョブの環境変数を挿入する」ビルドステップを追加し、env.properties [環境プロパティファイルのパス]フィールド。

これにより、DATE変数(およびそのプロパティファイル内のその他のもの)がエクスポートされ、残りのビルドステップで表示されます。

76
Christopher Orr