Jenkinsのビルド結果をBitbucketに表示する方法

# Jenkinsのビルド結果をBitbucketに表示する方法（成功・失敗のステータス連携）

## 背景
Bitbucket 上の **コミット画面** や **プルリクエスト画面** に Jenkins のビルド結果（✅成功／❌失敗）を表示させたい

---
## Bitbucketがクラウドの場合
### 🔧 必要なプラグイン

- [Bitbucket Plugin](https://plugins.jenkins.io/bitbucket/)
- [Git Plugin](https://plugins.jenkins.io/git/)
- [Bitbucket Build Status Notifier Plugin](https://plugins.jenkins.io/bitbucket-build-status-notifier/) ← これが通知を担う

---

### 🔧 設定手順

#### 1. プラグインのインストール（まだの場合）

「Jenkins管理 → プラグインの管理 → 利用可能」タブで  
`Bitbucket Build Status Notifier` を検索してインストール

---

#### 2. ジョブにステータス通知を設定

**パイプラインジョブ**の場合は、`Jenkinsfile` に以下を追加します：

```groovy
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                // 実際のビルド処理
                sh 'echo building...'
            }
        }
    }
    post {
        success {
            bitbucketStatusNotify(
                buildState: 'SUCCESSFUL',
                buildKey: "jenkins-${env.JOB_NAME}-${env.BUILD_NUMBER}",
                buildName: "My Pipeline: ${env.JOB_NAME}"
            )
        }
        failure {
            bitbucketStatusNotify(
                buildState: 'FAILED',
                buildKey: "jenkins-${env.JOB_NAME}-${env.BUILD_NUMBER}",
                buildName: "My Pipeline: ${env.JOB_NAME}"
            )
        }
    }
}
```

---

#### 3. `bitbucketStatusNotify` のパラメータ解説

| パラメータ      | 内容                                               |
|-----------------|----------------------------------------------------|
| `buildState`    | `INPROGRESS`, `SUCCESSFUL`, `FAILED`              |
| `buildKey`      | Jenkinsでの識別用キー（任意）                    |
| `buildName`     | Bitbucket上での表示名（任意）                    |

---

#### 4. Bitbucket での表示例

- ✅ `Build successful (MyJob)`
- ❌ `Build failed (MyJob)`

表示場所：
- コミット画面
- プルリクエスト画面（チェックマークや×が表示されます）

---

## Bitbucketがオンプレの場合
最初クラウドの方法で行ったが、実はオンプレのBitbucketでした:sweat_smile:

### 🔧 必要なプラグイン

- Bitbucket Server Integration Plugin

---

### 🔧 設定手順

#### 1. プラグインのインストール（まだの場合）

「Jenkins管理 → プラグインの管理 → 利用可能」タブで  
`Bitbucket Server Integration Plugin` を検索してインストール

#### 2. Bitbucket Serverで Personal Access Token を発行
発行手順
2.1. Bitbucketにログイン（https://git.example.com/）
2.2. 画面右上のアイコン → 「Personal Settings（個人設定）」をクリック
2.3. 左メニューから「Access Tokens（アクセストークン）」を選択
2.4. 「Create Token」をクリック
2.5. 以下の通り設定：
- Label：Jenkins通知用（任意）
- 権限：
    - Repositories：Read ✅ / Write ✅
    - Pull Requests：Read ✅ / Write ✅
2.6. 表示されたトークンをコピーしてください（再表示できないため）

#### 3.Jenkinsに Bitbucket Server を登録
3.1. 「Jenkinsの管理」→「設定（Configure System）」
3.2. セクション「Bitbucket Servers」が追加されているので、開きます

設定内容：
|フィールド|内容|
|-|-|
|Server Name|任意（例：My Bitbucket Server）|
|Server URL|https://git.example.com/（BitbucketのベースURL）|
|Credentials|Username + Personal Access Token をここで登録・選択|
|Connection Test|必ず「Test Connection」で接続確認|

#### 4.ジョブを「Multibranch Pipeline」として作成
4.1. Jenkinsトップ画面 → 「新規ジョブ作成」
4.2. 名前を入力（例：my-multibranch-job）
4.3. ジョブタイプとして「Multibranch Pipeline」を選択 → OK

#### 5.ソース設定：Bitbucket Serverを選択
|フィールド | 内容|
|-|-|
|Bitbucket Server | ③で登録したサーバ名を選択|
|Project Key | Bitbucketのプロジェクトキー（例：MYPROJ）|
|Repository Slug | リポジトリ名（例：my-repo）|
|Credentials | Gitクローン用の認証情報（必要に応じて）|

#### 6.Jenkinsfileをリポジトリに配置（通常はルート）
Bitbucket側のリポジトリに Jenkinsfile を追加

#### 7.保存＆スキャン実行
「保存」後に Jenkins がリポジトリをスキャンし、
→ ブランチやPRごとに自動でジョブが作られます。

#### トラブルシューティング
|問題 | 対応|
|-|-|
|「Test Connection」でエラー | トークンの権限不足、URLミス、証明書エラーの可能性あり|
|ブランチがスキャンされない | Jenkinsfileがそのブランチに存在しない可能性あり|
|ビルドステータスが出ない | Jenkinsfileのエラー、SCM設定不足の可能性あり|