Jira Cloud 製品のご紹介
Jira Cloud の製品、機能、プラン、および移行の詳細をご確認ください。
この統合は、ファイアウォールの内側で実行されている Jenkins サーバーと、Jira Software Cloud または Jira Service Management Cloud のいずれかを接続するための、簡単かつ安全で信頼できる無料の方法を実現します。
これによって、チームは Jira のすべての課題の詳細ビューで可視性とコンテキストを活用して、最新のビルド ステータスや、その作業が環境に正常にデプロイされたかどうかを確認できるようになります。
また、この情報によって Jira クエリ言語 (JQL) で複数の課題全体を検索して「現在のスプリントのどの課題が本番環境にデプロイされたか」などの質問に回答できるようになります。これらをボード上にクイック フィルターとして追加するさえもできます。
Jenkins を Jira Software Cloud に接続する前に、以下の点をご確認ください。
Jira Cloud サイトのサイト管理者であること。
Jenkins の管理者であり、プラグインをインストール、更新、および削除できること。
この統合に使用するパイプラインのソース コード/リポジトリ内で、Jenkinsfile を編集できます。
チームは課題キー (例: FUSE-123) をコミット メッセージ (デプロイ情報用) とブランチ名 (ビルド情報用) に含めます。チームがまだこれを行っていない場合は、開発作業における課題の参照方法についてご確認ください。
Jenkins サーバーにログインして Plugin Manager に移動します。
[Available (利用可能)] タブを選択して「Atlassian Jira Software Cloud」を検索します。
プラグインをインストールします。
GitHub でホストされているオープンソース プラグイン。こちらで確認できます。
「Jenkins for Jira」は、Jira Marketplace 経由でインストールできます。
Jira サイトにログインして [アプリ] > [その他のアプリを探す] の順に移動します。
検索ボックスに「Jenkins for Jira」と入力します。
「Jenkins for Jira by Atlassian」アプリをクリックします (表示されない場合は「Top trending (上位の傾向)」フィルターを削除してみてください)。
[アプリを取得] をクリックします。
「Jenkins for Jira」アプリを Jira サイトにインストールしたら、Webhook を設定する必要があります。
Jira で [アプリ] > [アプリを管理] の順に移動します。
左側のサイドバーの [アプリ] で「Jenkins for Jira」アプリへのリンクをクリックします。
[Connect a Jenkins server (Jenkins サーバーを接続)] をクリックします。
Jenkins プラグインをインストールするように、アプリがリマインダーを表示します。[次へ] をクリックします。
Jenkins サーバーの名前を入力します。
後で使用するために Webhook の URL をコピーします。
後で使用するためにシークレットをコピーします。
Webhook の URL とシークレットによって、Jenkins と Jira 間の接続を作成できます。
Jenkins の [Jenkins の管理] > [システムの設定] 画面で、[Jira Software Cloud 統合] セクションまでスクロールします。
[Add Jira Cloud Site (Jira Cloud サイトを追加)] > [Jira Cloud サイト] の順に選択します。サイト名、Webhook URL、シークレットの新しいフィールドが表示されます。
以下の詳細を入力してください。
サイト名: Jira Cloud サイトの URL。例: yourcompany.atlassian.net
Webhook URL: Jira の Jenkins アプリから以前コピーした Webhook の URL。
Secret (シークレット):
[追加] > [Jenkins] の順に選択します。
[Kind] では、[Secret text] を選択します。
[Secret (シークレット)] には、Jira の Jenkins アプリから以前コピーしたシークレットを貼り付けます。
[Description (説明)] には、シークレットを特定できるような説明を入力します。
これで、シークレットがドロップダウン メニューに表示されます。新規作成したシークレットを選択します。
[Test connection] を選択して、Jira サイトで認証情報が有効であることを確認します。
保存をクリックします。
このプラグインは Jira にビルドとデプロイの各イベントを送信して、Jira 課題、デプロイ タイムライン、リリース機能に表示されるようにします。
Jenkins から Jira に情報を送信するには、チームに Jira 課題キー (例: FUSE-123) をコミット メッセージ (デプロイ情報用) とブランチ名 (ビルド情報用) に含める必要があります。Jenkins でパイプラインが実行されるたびに、プラグインはブランチ名とコミット メッセージで Jira 課題キーを検索します。課題キーが見つかると、ビルドとデプロイの各情報が Jira に送信されます。課題キーが見つからない場合、Jenkins プラグインは Jira に何も送信しません。
Jenkinsfile に何も追加せずにビルド イベントを自動送信するには、[Manage の管理] > [システムの設定] の順に移動して、[ビルドを自動送信] チェックボックスをオンにします。
これを有効にすると、パイプラインの実行が開始されると「進行中」の、パイプラインが正常に終了すると「成功」の、エラーにより停止すると「失敗」の各ビルド イベントが、プラグインから Jira に送信されます。
ビルドに正規表現も指定した場合、プラグインは一致する名前を持つビルド ステップが完了した後にのみ Jira にビルド イベントを送信します。
正規表現 ^build$ は、次の Jenkinsfile のbuild ステージに一致します。次に例を示します。
1
2
3
4
5
6
7
8
9
10
pipeline {
agent any
stages {
stage('build') {
steps {
echo 'build done'
}
}
}
}
この Jenkinsfile 内のパイプラインが実行されるたびに、build ステージの開始時と終了時に、ビルド イベントをすべての設定済み Jira Cloud サイトに送信します。
Jenkinsfile に何も追加せずにデプロイ イベントを自動送信するには、[Jenkins の管理] > [システムの設定] の順に移動して [デプロイを自動送信する] チェックボックスをオンにします。
これを有効にすると、指定した正規表現と一致する名前のビルド ステップの実行が開始されると「進行中」の、ビルド ステップが終了すると「成功」または「失敗」の各ビルド イベントが、プラグインからJira に送信されます。
これを機能させるには、Jenkinsfile 内のデプロイ ステップの名前に環境名が含まれている必要があります。正規表現にはフラグメント ((?<envName>.*)) を含めて環境名と一致させ、プラグインがビルド ステップ名から環境名を抽出できるようにします。
Jenkinsfile の例を以下に示します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pipeline {
agent any
stages {
stage('deployments') {
parallel {
stage('deploy to stg') {
steps {
echo 'stg deployment done'
}
}
stage('deploy to prod') {
steps {
echo 'prod deployment done'
}
}
}
}
}
}
[デプロイを自動送信する] チェックボックスがオンで正規表現が ^deploy to (?<envName>.*)$ に設定されている場合は、上記の Jenkinsfile を実行すると、stg と prod の各環境の「進行中」デプロイ イベントがすべての設定済み Jira Cloud サイトに送信されます。その後、ビルド ステップが完了するとそれぞれの「成功」デプロイ イベントが送信されます。
ビルド イベントを送信するタイミングをより細かく制御する場合は、jiraSendBuildInfo ビルド ステップを使用できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
post {
always {
// previous to version 2.0.0 you must provide parameters to this command (see below)!
jiraSendBuildInfo()
}
}
}
}
}
これによって、Build ステージが正常に完了すると「成功」、エラーが発生すると「失敗」ビルド イベントが、すべての設定済み Jira Cloud サイトに送信されます。Jenkins プラグインはブランチ名から Jira 課題キーを自動抽出します。
また、Jira サイトの URL を指定して、ビルド イベントを (すべての設定済み Jira サイトではなく) この Jira サイトにのみ送信するようにプラグインに指示できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
post {
always {
jiraSendBuildInfo site: 'example.atlassian.net', branch: 'TEST-123-awesome-feature'
}
}
}
}
}
デプロイ イベントを送信するタイミングをより細かく制御する場合は、jiraSendDeploymentInfo ビルド ステップを使用できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
pipeline {
agent any
stages {
stage('Deploy - Staging') {
when {
branch 'master'
}
steps {
echo 'Deploying to Staging from master...'
}
post {
always {
jiraSendDeploymentInfo environmentId: 'us-stg-1', environmentName: 'us-stg-1', environmentType: 'staging'
}
}
}
stage('Deploy - Production') {
when {
branch 'master'
}
steps {
echo 'Deploying to Production from master...'
}
post {
always {
jiraSendDeploymentInfo environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production'
}
}
}
}
これによって、Deploy - StagingとDeploy - Productionの各ステージの終了時に、すべての設定済み Jira サイトに「成功」または「失敗」の各デプロイ イベントが送信されます。
パラメーター environmentId、environmentName、environmentType を指定する必要があります。environmentType は、unmapped、development、testing、staging、production のいずれかである必要があります。
デプロイ イベントを、すべての設定済み Jira サイトではなく単一の Jira サイトに送信するように、パラメーター siteを指定できます。
複数の Jira サイトが Jenkins サーバーに接続されている場合は、enableGating:true を指定した jiraSendDeploymentInfo がsite パラメーターに必要です。デプロイ ゲートの詳細についてはこちらをご参照ください。
また、branch パラメーターによってブランチを指定して、デプロイを接続する Jira 課題キーを抽出するブランチを定義できます。
以下の Jenkinsfile のように、ビルドとデプロイを組み合わせられます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
post {
always {
jiraSendBuildInfo site: 'example.atlassian.net'
}
}
}
stage('Deploy - Staging') {
when {
branch 'master'
}
steps {
echo 'Deploying to Staging from master...'
}
post {
always {
jiraSendDeploymentInfo environmentId: 'us-stg-1', environmentName: 'us-stg-1', environmentType: 'staging'
}
}
}
stage('Deploy - Production') {
when {
branch 'master'
}
steps {
echo 'Deploying to Production from master...'
}
post {
always {
jiraSendDeploymentInfo environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production'
}
}
}
}
}
Bitbucket や GitHub などの接続されたソース コード管理ツールでプル リクエストをコミットまたはマージするたびに、そのリポジトリに指定した Jenkins パイプラインが実行されます。チームが課題キーをプル リクエスト、コミット メッセージ、ブランチ名に含めていれば、Jira 課題の開発パネルが更新されて関連するビルドとデプロイの情報が表示されます。課題の開発情報を表示する方法に関する詳細についてご確認ください。
デプロイ機能を Jira プロジェクトで有効にしている場合、デプロイ ページではすべての Jenkins デプロイをタイムラインに表示します。環境、担当者、課題タイプなどでデプロイをフィルタリングまたは検索して表示できます。また、チームがリリースとバージョンによって作業を整理している場合は、リリース機能にもデプロイ情報が表示されます。
Jenkins を Jira Service Management Cloud プロジェクトに接続する方法をご確認ください。
この内容はお役に立ちましたか?