4

Jenkinsビルドプロセスの一部として、いくつかのWindowsバッチスクリプトを実行し、最後にJenkinsから送信される電子メールでこれらの中間ステップに関する情報を報告したいと思います。

簡単なアプローチは、バッチステップでWindows環境変数を設定することだと思い、PowerShellを使用して次のように設定できました。

powershell.exe -Command "& {[Environment]::SetEnvironmentVariable('ThisIsATest', 'TestValue', 'Machine')}"

「Windowsバッチコマンドの実行」ビルドステップで実行すると、環境変数が「最終的に」正しく設定されます。つまり、ビルドサーバーにリモート接続すると、各ビルド中に値が期待どおりに作成/変更されたことを確認できます。

ただし、「ビルド後のアクション」の「編集可能な電子メール通知」ステップで値を使用しようとすると、

Our test value: ${ENV, var="ThisIsATest"}

「デフォルトのコンテンツ」セクションに移動しても、正しい結果が得られません。使用する

Print full environment: ${ENV}

また、値が??まだ??あることを示しています 作成されました。

さらに奇妙なことに、リモートセッションではっきりと確認できたとしても(そして変更を追跡したりするなど)、複数の実行で問題の環境変数がまったく取得されません。

質問:

  • 私たちの目標を達成する他の方法はありますか?

    「コンパイル/単体テストでOK/失敗した場合の一般的な成功/失敗を報告するだけでなく、電子メール本文の中間ステップからの追加情報も報告します」?

  • または、電子メールプラグインが期待する環境変数を取得しないという奇妙な(少なくとも私には)動作を説明しますか?(おそらく、回避策を探す場所についていくつかの新しいアイデアを与えるため)

これをお読みいただきありがとうございます。いつものように、どんなアドバイスも大歓迎です。

-T

4

1 に答える 1

9

ビルドステップ内で設定された環境変数は、「通常の」状況では外部に伝播しません。次のことができます。

  • EnvInjectプラグインをインストールします
  • 環境変数を設定し、フォームのプロパティファイルに保存しますVAR=VALUE
  • 次のビルドステップでは、EnvInjectプラグインを使用してファイルをインポートします(プラグインをインストールした後、ビルドステップオプションの中に「環境変数の挿入」が表示されます)。変数はビルド全体で使用できます。
于 2012-05-16T20:26:57.460 に答える