ジョブが完了したときに電子メール通知を送信したい。繁殖方法を教えてください。
6 に答える
プラグインを使用するかどうかに関係なく、ジョブが終了したときにメールを送信するように Jenkins を構成できます。
ビルトイン
まず、 をクリックしてメール サーバーの設定を構成し、ページの下部にあるセクションManage Jenkins > Configure System
を見つけます。必要に応じて、セクションでE-mail Notification
も構成します。System Admin e-mail address
Jenkins Location
次に、ジョブごとにその構成を取得し、必要に応じてAdd post-build action
選択E-mail Notification
して構成します。
プラグイン
デフォルトの jenkins 電子メール メカニズムの問題は、カスタマイズが非常に限られていることです。
もう 1 つの方法は、強力な電子メール通知メカニズムであるEmail-Ext プラグインを使用することです。いくつかのグローバル トリガーを定義できますが、各ジョブの設定をカスタマイズすることもできます。成功、失敗、またはその他のビルド ステータスに関する電子メールの送信がサポートされています。
トリガーと受信者を追加するJenkins email-extプラグインがあります。
この回答は、Jenkins を介して Python スクリプトと Outlook を使用してメールを送信するためのものです。
これには PsExec.exe が必要です。これにより、アプリケーションがリモートで実行されます。
フリースタイル プロジェクトを作成し、次の dos シェル コマンドを実行します。
パス\to\psexec.exe -u ユーザー名 -p パスワード -i 1 cmd -accepteula /c python パス\to\SendMail.py
ユーザー名とパスワードは、Outlook が実行されている Windows ユーザー アカウント用です。path\to\SendMail.py は、python スクリプトの場所です。SendMail.py は次のようになります。
import win32com.client as win32
outlook=win32.Dispatch('outlook.application')
mail=outlook.CreateItem(0)
mail.To='abc@xyz.com'
mail.Subject="Test Mail"
mail.HTMLBody="Hiii, This is just a test mail."
mail.Send()
ここでは、outlook の実行に wind32com を使用しています。メールは Outlook にログインしているデフォルトのアカウントを使用して送信されます。
ジョブが完了するたびに、このプロジェクトをビルドするようにトリガーできます。
これが誰にとっても役立つことを願っています:)
上記の回答はすべて、プラグインとその使用方法に関するものであり、パイプライン実行での使用方法に関するものではありません。smtp サーバーが jenkins で構成され、https: //plugins.jenkins.io/email-ext/プラグインがインストールされていると仮定すると、以下の形式でプラグインを作成または使用できます。
def csproj_path = 'dotnetcore_sample.csproj'
pipeline {
agent{
node {
label 'dotnet-31'
}
}
stages {
stage ('build locally'){
steps{
sh "dotnet build ${csproj_path}"
}
}
stage ('Prompt check'){
steps {
mail to: 'bruce.wayne@gmail.com',
cc : 'clark.kent@gamil.com'
subject: "INPUT: Build ${env.JOB_NAME}",
body: "Awaiting for your input ${env.JOB_NAME} build no: ${env.BUILD_NUMBER} .Click below to promote to production\n${env.JENKINS_URL}job/${env.JOB_NAME}\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
timeout(time: 60, unit: 'MINUTES'){
input message: "Promote to Production?", ok: "Promote"
}
}
}
}
post {
failure {
mail to: 'mymail@gmail.com',
cc : 'ccedpeople@gamil.com'
subject: "FAILED: Build ${env.JOB_NAME}",
body: "Build failed ${env.JOB_NAME} build no: ${env.BUILD_NUMBER}.\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
}
success{
mail to: 'mymail@gmail.com',
cc : 'ccedpeople@gamil.com'
subject: "SUCCESSFUL: Build ${env.JOB_NAME}",
body: "Build Successful ${env.JOB_NAME} build no: ${env.BUILD_NUMBER}\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
}
aborted{
mail to: 'mymail@gmail.com',
cc : 'ccedpeople@gamil.com'
subject: "ABORTED: Build ${env.JOB_NAME}",
body: "Build was aborted ${env.JOB_NAME} build no: ${env.BUILD_NUMBER}\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
}
}
}
上記の宣言型パイプラインは、以下の機能で構成されています
- それぞれのユーザーに電子メールを送信して、ビルドを次のレベルに昇格させます。
- ビルド成功時のメール。
- ビルドが失敗したとき、およびログへのリンクとともに中止されたときに電子メールを送信します。