Skip to content

Commit b17be5b

Browse files
Merge pull request #198 from BlueEventHorizon/refactor/194-ci-check-phase-create-pr
[Refactor] Create-prにPhase 6 CI結果確認を追加
2 parents 37a98d5 + 4ce2d9d commit b17be5b

1 file changed

Lines changed: 72 additions & 8 deletions

File tree

plugins/anvil/skills/create-pr/SKILL.md

Lines changed: 72 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,17 @@ git ls-remote --heads origin <current-branch>
186186
git push -u origin <current-branch>
187187
```
188188
- 失敗した場合は AskUserQuestion を使用してエラー内容を提示し対応を確認する(中止 or 別対応)
189+
- **存在する** → ローカル HEAD が origin の同名ブランチと一致するか確認する(remote-tracking ref はローカルキャッシュのため fetch なしでは古い可能性がある。DES-025 §7 の `verify_pushed.py` と同様に `git ls-remote` でリモートを直接問い合わせる):
190+
```bash
191+
git rev-parse HEAD
192+
git ls-remote --heads origin <current-branch> # 出力の先頭列(sha)と HEAD を比較
193+
```
194+
- **一致** → 追加 push 不要のまま 4.2 へ
195+
- **不一致(ローカルに未 push commit がある stale 状態)** → プッシュ:
196+
```bash
197+
git push origin <current-branch>
198+
```
199+
- 失敗した場合は AskUserQuestion を使用してエラー内容を提示し対応を確認する(中止 or 別対応)
189200

190201
### 4.2 PR 作成
191202

@@ -223,13 +234,66 @@ PR を作成しました:
223234
224235
---
225236
237+
## Phase 6: CI 結果確認 [MANDATORY]
238+
239+
### 6.1 CI 設定の有無を確認
240+
241+
```bash
242+
git rev-parse --show-toplevel
243+
```
244+
245+
で取得したリポジトリルート配下に `.github/workflows/*.yml` または `.github/workflows/*.yaml` が存在するか確認する。
246+
247+
- **存在しない**(CI 未設定)→ 本 Phase をスキップして終了
248+
- **存在する** → 6.2 へ
249+
250+
### 6.2 CI 結果の確認(完了まで待機)
251+
252+
Phase 4.2 で作成した PR の番号に対し、`gh pr checks``--watch` オプションで CI 完了までブロッキング待機する(自前のポーリングループは実装しない。gh CLI 標準機能に委譲する):
253+
254+
```bash
255+
gh pr checks <PR番号> --repo <owner>/<repo> --watch
256+
```
257+
258+
- **終了コード 0(全件成功)** → 6.3 へ
259+
- **終了コード非 0(1 件以上失敗)** → 6.4 へ
260+
261+
### 6.3 CI 全件成功時
262+
263+
完了報告に CI 結果を追記する:
264+
265+
```
266+
CI: ✅ すべてのチェックが成功しました
267+
```
268+
269+
### 6.4 CI 失敗時
270+
271+
```bash
272+
gh pr checks <PR番号> --repo <owner>/<repo>
273+
```
274+
275+
の出力から失敗したチェック名・詳細 URL を要約し、ユーザーに提示したうえで `AskUserQuestion` で対応を確認する:
276+
277+
```
278+
CI が失敗しました:
279+
<失敗したチェックの要約>
280+
281+
対応を選択してください:
282+
- 修正する: 失敗原因を調査し、修正してから再度 push する
283+
- このまま報告して終了: 現状の PR URL と CI 失敗内容を報告して終了する
284+
```
285+
286+
---
287+
226288
## エラーハンドリング
227289

228-
| エラー | 対応 |
229-
| ------------------------------------ | ---------------------------------------------------------- |
230-
| gh CLI 未インストール | `https://cli.github.com/` のインストール手順を案内して終了 |
231-
| gh CLI 未認証 | `gh auth login` を案内して終了 |
232-
| main/master/develop ブランチから実行 | AskUserQuestion で警告し確認(続行 or 中止) |
233-
| コミット差分なし | エラー終了・コミットを促す |
234-
| push 失敗 | AskUserQuestion でエラー内容を提示し対応を確認 |
235-
| PR 作成失敗 | エラー内容を表示して終了 |
290+
| エラー | 対応 |
291+
| ----------------------------------------------- | ----------------------------------------------------------------------------------------- |
292+
| gh CLI 未インストール | `https://cli.github.com/` のインストール手順を案内して終了 |
293+
| gh CLI 未認証 | `gh auth login` を案内して終了 |
294+
| main/master/develop ブランチから実行 | AskUserQuestion で警告し確認(続行 or 中止) |
295+
| コミット差分なし | エラー終了・コミットを促す |
296+
| push 失敗 | AskUserQuestion でエラー内容を提示し対応を確認 |
297+
| リモートブランチが stale(未 push commit あり) | ローカル HEAD を origin へ push してから続行。失敗時は AskUserQuestion で対応を確認 |
298+
| PR 作成失敗 | エラー内容を表示して終了 |
299+
| CI 失敗 | 失敗内容を要約して提示し、AskUserQuestion で対応(修正する / このまま報告して終了)を確認 |

0 commit comments

Comments
 (0)