12

バージョン 2.15 の Jenkins プラグイン Email-ext では、ファイルを添付して通知メールを作成するためのサポートが追加されました。ビルド通知メールにビルドログを添付したいのですが、やり方がわかりません。

ビルド ログは、Jenkins マスター ノード (この場合は Ubuntu Linux) に保存されているようです。たとえば、/var/lib/jenkins/jobs/<PROJECT_NAME>/builds/<DATE_TIME>/log. 当然、ビルド ログのパスはビルドごとに変わります。Email-ext ファイル添付機能は、デフォルトで、Jenkins スレーブ ビルド マシン (この場合は Mac OS X) にあるプロジェクト ワークスペース内のファイルを使用します。たとえば、フォルダーを使用するようにスレーブを構成しました/Users/<USERNAME>/Jenkins/build_agent/workspace/<PROJECT_NAME>/

スレーブ ビルド マシンのワークスペースではなく、マスターのファイル システムからファイルを添付するように Email-ext を取得する方法はありますか?

アドバイスを提供できる人に事前に感謝します。Email-ext wiki ページには現在、添付ファイルの設定方法の例が含まれていません。

4

6 に答える 6

16

電子メールの本文で${BUILD_LOG、maxLines、escapeHtml}トークンを使用して、ビルドログを含めることができます。

email-extプラグインドキュメントの引用(ここで入手可能):

「使用可能なすべての電子メールトークンとそれらが表示するもののリストを表示するには、プロジェクト構成画面の電子メール拡張セクションの下部にあるコンテンツトークン参照に関連付けられている「?」(疑問符)をクリックします。」

于 2011-12-19T16:25:42.540 に答える
13

プラグインはビルドログの添付をサポートしています。プロジェクト構成のボックスをチェックするだけです。

email-ext のプロジェクト構成

于 2013-03-21T00:06:47.803 に答える
4

この問題について熟考し、さらに調査を行った結果、Email-ext はビルド通知メールへのビルド ログの添付をサポートしていないという結論に達しました。

ただし、そのような機能が利用可能になるまでは、回避策を思い付きました。Jenkins ビルド トークンを使用して、ログ ファイルをマスター サーバーからスレーブのビルド ワークスペースにコピーするための適切なコマンドを生成します (以下の注を参照)。 )。

プロジェクトでは、メインのコンパイル ステップの後に、新しいシェル実行ステップを追加して、適切なscp(セキュア コピー) コマンドを生成しました。これがコマンドです (USER と HOSTNAME を独自の値に置き換えます。おそらく、個々のサーバーに合わせてパスを調整する必要があります)。

scp USER@HOSTNAME:/var/lib/jenkins/jobs/$JOB_NAME/builds/$BUILD_ID/log build.log

次に、Email-ext プラグインの Email-ext Attachmentsフィールドに、次のように入力しました。

build.log

これで、ビルド ログがマスターからスレーブのワークスペースにコピーされ、ビルド通知の電子メール メッセージに添付されます。$BUILD_LOGメッセージ本文テンプレートからトークンを削除しました。

注: この特定の手法を使用するには、おそらく OpenSSH キー パスフレーズを使用して、スレーブとマスターの間でパスワードなしの ssh を構成する必要があります。ヘルプが必要な場合は、Web でコマンドに関する情報を検索し、このssh-keygenようなチュートリアルを確認してください。同様のアプローチは、SSH のサポートが組み込まれていないプラットフォームでも機能するはずです。RoboCopy などは、Windows システムで動作するはずです。

編集: Email-ext プラグインに、ジョブの構成画面のチェックボックスを使用してビルド ログを通知メッセージに添付する機能が追加されました。例については、スライドの回答を参照してください。

于 2011-12-20T06:37:38.613 に答える