jenkinsの電子メール/WeChat/DingTalk通知を統合する方法を学ぶ

01メール通知

電子メール拡張プラグイン電子メール拡張プラグインをインストールします。すでにインストールされている場合は、再度インストールする必要はありません。

このプラグインは、より詳細なメール送信設定を提供できます
ここに画像の説明を挿入

QQメールボックスの準備

会社は送信者としてエンタープライズメールボックスを使用し、関連情報はメールボックス管理者によって参照されます。この例では、qqメールボックスがメール管理者および送信者として使用されます

1. QQメールボックスSMTPサービスを開き、QQメールボックスを開いて設定を入力します
ここに画像の説明を挿入

2.アカウントを入力します
ここに画像の説明を挿入

3.SMTPサービスを有効にします
ここに画像の説明を挿入

4.指定された番号に確認コードを送信します
ここに画像の説明を挿入

5.認証コードを取得し、認証コードをtxtファイルに保存します。この認証コードは、Jenkinsでメールボックスを構成するために必要です。
ここに画像の説明を挿入

6. [OK]をクリックすると、SMTPサービスが有効になります
ここに画像の説明を挿入

Jenkinsにはメール設定が付属しています

ここでは、最初にメールボックスの構成が正しいかどうか、およびメールを正常に送信できるかどうかをテストできます。

[システム管理]->[システム構成]に移動し、次の構成を行います

まず、システム管理者のメールアドレスを追加します

ここに画像の説明を挿入

電子メール通知の領域を見つけ、構成およびテストします
ここに画像の説明を挿入

テストをクリックすると、プロンプトが成功し、メールボックスに電子メールが送信されます。これは、電子メールの送信に問題がないことを示しています。

拡張メールボックスを構成する

この構成は、jenkinsタスクが実行された後にメールテンプレートとして使用されます

[システム管理]->[システム構成]に移動し、[拡張電子メール通知]領域を見つけます。

次の設定を行います。
ここに画像の説明を挿入

タスクが電子メールを送信するときに詳細なログを表示する場合は、次のオプションを確認できます。これらのオプションは、主に電子メールの送信に問題がある場合のデバッグに使用されます。
ここに画像の説明を挿入

02DingTalk通知

DingTalk通知プラグインをインストールします
ここに画像の説明を挿入

DingTalkにログインし、DingTalkロボットを構成します

参照リンク:

https://developers.dingtalk.com/document/robots/custom-robot-access

jenkinsでDingdingを構成する

[システム管理]->[システム構成]に移動し、DingTalk領域を見つけて、次の構成を行います
ここに画像の説明を挿入

jenkinsタスク構成

DingTalkはフリースタイルのタスクのみをサポートし、Mavenスタイルはサポートしないため、最初にフリースタイルのタスクを作成しましょう。

1.フリースタイルプロジェクトを作成する
ここに画像の説明を挿入

2.保存後すぐにビルドします

DingTalkグループがタスク実行のメッセージを受信したことがわかります

ここに画像の説明を挿入

03WeChat通知

最初にjdk構成を確認してください

jdkがopenjdkのバージョンである場合は、必ずそれをアンインストールしてoracleのjdkを使用してください。そうしないと、問題が発生する可能性があります。

WeChat通知プラグインをインストールします
ここに画像の説明を挿入

Enterprise WeChatにログインし、WeChatロボットを追加します

1.グループメッセージを右クリックして、[ロボットの追加]をクリックします
ここに画像の説明を挿入

2. [ロボットの追加]をクリックした後、[新規]をクリックしてロボットを作成します
ここに画像の説明を挿入

3.ロボット名を入力し、[追加]をクリックします

ここに画像の説明を挿入

Jenkinsタスク構成WeChat通知

タスク構成インターフェイスに入り、一番下までプルして、エンタープライズWeChat通知を追加します
ここに画像の説明を挿入

次の設定を行います。
ここに画像の説明を挿入

タスクを実行すると、エンタープライズWeChatグループに通知が届きます

ここに画像の説明を挿入

04メールコンテンツテンプレート

メールテンプレート

$PROJECT_NAME-第$BUILD_NUMBER次构建日志
 <div>   

 <table width="95%" cellpadding="0" cellspacing="0"    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">

 <tr>           

    <th align="center" colspan="2"><br />
        <h2>构建信息</h2>            

    </th>       

 </tr>       

   <tr>             

     <td>                 

        <ul>                     

           <li>项目名称 :$PROJECT_NAME</li><br />              

           <li>代码覆盖率报告:<a href=${BUILD_URL}jacoco target='_blank'>${BUILD_URL}jacoco</a></li><br />  
           <li>sonar扫描报告:<a href=http://192.168.0.107:9000/dashboard?id=jacocoaa1${BUILD_NUMBER} target='_blank'>http://192.168.0.107:9000/dashboard?id=jacocoaa1${BUILD_NUMBER}</a></li><br />                 
           <li>详细测试日志 :<a href=${BUILD_URL}console target='_blank'>${BUILD_URL}console</a></li><br />  
           <li>触发原因:${CAUSE}</li><br />        
           <li>项目Url :<a href=‘$BUILD_URL’ target='_blank'>$BUILD_URL</a></li><br />          
       </ul>             

    </td>           

    <td height="350px" style="overflow:hidden;display:block">${JELLY_SCRIPT,template="html"}<br/>
   </tr>     

 </table>    

jenkinsに組み込まれている変数を知る方法は?(IPを自分のものに置き換えることを忘れないでください)

アドレス:http://192.168.0.108:8080 / env-vars.html /

05DingTalkおよびWeChat通知の拡張

DingTalkはフリースタイルのプロジェクトでのみ使用でき、WeChat通知はメッセージの内容をカスタマイズできないため、完全ではありません。

次に、スクリプトをカスタマイズしてこの部分を拡張し、タスクのビルド後に特定のスクリプトを実行して目的を達成します。ビルド後にスクリプトを実行するには、次のプラグインが必要です。
ここに画像の説明を挿入

DingTalkロボットメッセージインターフェイスに精通している

https://developers.dingtalk.com/document/robots/custom-robot-access

インターフェイステストツールを使用して、最初にインターフェイスをデバッグし、デバッグに合格した後にスクリプトを作成できます。

ビルド後のスクリプトを次のように編集します。

#現在のタスクの結果APIにアクセスし、結果をresult.jsonファイルに保存します

curl -u admin:123456 $ {BUILD_URL} api / json> result.json

#awkを使用してresult.jsonを解析し、タスクの実行結果を取得します

result = $(awk -F'“ result”:''{print $ 2}' result.json | awk -F'["、]''{print $ 1 $ 2}')

エコー${結果}

#awkを使用してresult.jsonを解析し、タスクエグゼキューターを取得します

user = $(awk -F'“ userName”:''{print $ 2}' result.json | awk -F'["、]''{print $ 1 $ 2}')

エコー${ユーザー}

#curlを使用してDingdingのWebhookアドレスを呼び出し、パラメーターテキストパラメーターでタスク関連の変数をスプライシングします

curl'https://oapi.dingtalk.com/robot/send?access_token=b23d3a9cf410a4f7b4b05b1e5fe73ead7f589aa92572bd367cbb919d46904c6b' \

-H'コンテンツタイプ:application / json' \

-d'{

    "msgtype": "markdown",

    "markdown": {

        "title":"dingding",

        "text": "#### '${JOB_NAME}'项目扫描任务  \n - 任务:第'${BUILD_NUMBER}'次\n - 状态:'${result}' \n - 执行人: '${user}' \n \n[查看控制台]('${BUILD_URL}')"

   },

   "at": {

       "atMobiles": [

       ],

       "atUserIds": [

       ],

       "isAtAll": false

  }

} '

受信した最後のメッセージ:
ここに画像の説明を挿入

WeChatボットのメッセージインターフェースに精通している

インターフェース関連の情報は、エンタープライズWeChatロボット構成インターフェースで確認できます。

ここに画像の説明を挿入

インターフェイステストツールを使用して、最初にインターフェイスをデバッグし、デバッグに合格した後にスクリプトを作成できます。

ビルド後のスクリプトを次のように編集します。

#現在のタスクの結果APIにアクセスし、結果をresult.jsonファイルに保存します

curl -u admin:123456 $ {BUILD_URL} api / json> result.json

#awkを使用してresult.jsonを解析し、タスクの実行結果を取得します

result = $(awk -F'“ result”:''{print $ 2}' result.json | awk -F'["、]''{print $ 1 $ 2}')

エコー${結果}

#awkを使用してresult.jsonを解析し、タスクエグゼキューターを取得します

user = $(awk -F'“ userName”:''{print $ 2}' result.json | awk -F'["、]''{print $ 1 $ 2}')

エコー${ユーザー}

#curlを使用してWeChatのWebhookアドレスを呼び出し、パラメーターcontentパラメーターでタスク関連の変数をスプライシングします

curl'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=a2a30ae8-4c5f-4302-9820-dc8b92d2f510' \

-H'コンテンツタイプ:application / json' \

-d'{

     "msgtype": "markdown",

     "markdown": {

         "content": "#### '${JOB_NAME}'项目扫描任务1  \n - 任务:第'${BUILD_NUMBER}'次\n - 状态:'${result}' \n - 执行人: '${user}' \n <@沙陌> \n \n[查看控制台]('${BUILD_URL}') "

  }

} '

受信した最後のメッセージ:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/Testfan_zhou/article/details/123842390