Claude Code Plugins

Community-maintained marketplace

Feedback

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name ci-cd
description CI/CD(GitHub Actions、Screwdriver)の確認方法とトラブルシュート。 推測ではなく、必ずログを確認してから対策を講じる。
allowed-tools Bash, Read, Grep, Glob

CI/CD確認スキル

目的

CI/CDの失敗時に、推測で解決するのではなく、必ずジョブのログを確認して原因を把握してから対策を講じる。

重要な原則

❌ 禁止事項

  • エラーメッセージを見ずに推測で修正を試みる
  • ログを部分的にしか確認しない
  • エラーの根本原因を特定せずに対症療法を実施

✅ 必須事項

  • 必ずジョブのログ全体を確認する
  • エラーメッセージの前後のコンテキストを読む
  • 失敗したステップを特定する
  • 根本原因を理解してから修正する

GitHub Actionsのログ確認方法

1. CLIでワークフロー実行状況を確認

# 最新のワークフロー実行一覧を表示
gh run list

# 特定のワークフロー実行の詳細を表示
gh run view <run-id>

# 失敗したワークフロー実行のみを表示
gh run list --status failure

# 特定のブランチのワークフロー実行を表示
gh run list --branch feature/my-branch

2. ジョブのログを取得

# 特定のワークフロー実行のログを表示
gh run view <run-id> --log

# 失敗したジョブのログのみを表示
gh run view <run-id> --log-failed

# ログをファイルに保存
gh run view <run-id> --log > workflow.log

3. 特定のジョブのログを確認

# ジョブ一覧を表示
gh run view <run-id> --job

# 特定のジョブのログを表示
gh run view --job <job-id> --log

4. Webブラウザで確認

# ワークフロー実行ページをブラウザで開く
gh run view <run-id> --web

5. リアルタイムでログを監視

# ワークフロー実行を監視(ポーリング)
gh run watch <run-id>

Screwdriverのログ確認方法

1. Screwdriver CLIでビルド状況を確認

# ビルド一覧を表示
sd-cmd exec get builds --pipeline <pipeline-id>

# 特定のビルドの詳細を表示
sd-cmd exec get build --build-id <build-id>

2. ビルドログを取得

# ビルドログを表示
sd-cmd exec get build-log --build-id <build-id>

# ステップごとのログを確認
sd-cmd exec get build-log --build-id <build-id> --step <step-name>

3. WebブラウザでScrewdriver UIを確認

# Screwdriver UIのURLを開く
open https://screwdriver.company.com/pipelines/<pipeline-id>/builds/<build-id>

4. APIを使用したログ取得

# curlでビルドログを取得
curl -H "Authorization: Bearer $SD_TOKEN" \
  "https://api.screwdriver.company.com/v4/builds/<build-id>/steps/<step-name>/logs"

# jqで整形
curl -H "Authorization: Bearer $SD_TOKEN" \
  "https://api.screwdriver.company.com/v4/builds/<build-id>/steps/<step-name>/logs" | jq -r '.[].message'

失敗時の対応フロー

Step 1: ログを全文確認

# GitHub Actionsの場合
gh run view <run-id> --log > /tmp/ci-log.txt
cat /tmp/ci-log.txt

# Screwdriverの場合
sd-cmd exec get build-log --build-id <build-id> > /tmp/sd-log.txt
cat /tmp/sd-log.txt

Step 2: エラーメッセージを特定

  • ログ内で Error:, FAILED:, , [ERROR] を検索
  • スタックトレースの先頭行を確認
  • 失敗したステップ名を特定
# エラー行を抽出
grep -i "error\|failed\|✗" /tmp/ci-log.txt

# 前後5行のコンテキストも表示
grep -i -B 5 -A 5 "error" /tmp/ci-log.txt

Step 3: 根本原因を分析

以下の観点で分析:

  1. 依存関係の問題: パッケージのインストールエラー
  2. 環境変数の問題: 未設定または誤った値
  3. 権限の問題: ファイルアクセス権限、API認証
  4. テストの失敗: ユニットテスト、統合テスト
  5. ビルドの失敗: コンパイルエラー、リンクエラー
  6. タイムアウト: ジョブ実行時間超過

Step 4: 修正を実施

根本原因を理解してから、以下を実施:

  1. ローカル環境で再現を試みる
  2. 修正コードを作成
  3. ローカルでテスト
  4. コミット&プッシュ
  5. CI/CDで再実行を確認

Step 5: 結果を確認

# 最新のワークフロー実行を確認
gh run list --limit 1

# 成功を確認
gh run view <run-id>

よくあるエラーと対処法

GitHub Actions

エラー1: Error: Process completed with exit code 1

確認すべき点:

  • 前のステップのログでエラー詳細を確認
  • テストの失敗、ビルドエラーの有無

対処法:

# ログ全体を確認してエラー箇所を特定
gh run view <run-id> --log | grep -B 20 "exit code 1"

エラー2: Error: Unable to resolve action

確認すべき点:

  • アクションの名前・バージョンが正しいか
  • プライベートリポジトリの場合、アクセス権限

対処法:

# 正しいアクション名を確認
- uses: actions/checkout@v4  # v3 → v4 に更新

エラー3: Error: Resource not accessible by integration

確認すべき点:

  • GITHUB_TOKEN の権限設定
  • ワークフローの permissions セクション

対処法:

permissions:
  contents: write
  pull-requests: write

Screwdriver

エラー1: Build failed: Command not found

確認すべき点:

  • コマンドがコンテナイメージに含まれているか
  • PATHが正しく設定されているか

対処法:

# screwdriver.yamlでイメージを確認
image: node:18  # 必要なコマンドが含まれるイメージを使用

エラー2: Build timeout

確認すべき点:

  • ビルド時間が制限を超えていないか
  • 無限ループやハングアップの有無

対処法:

# タイムアウトを延長
annotations:
  screwdriver.cd/timeout: 120  # 分単位

エラー3: Secrets not found

確認すべき点:

  • シークレットが正しく設定されているか
  • シークレット名のタイポ

対処法:

# Screwdriver UIでシークレットを確認
# Pipeline Settings > Secrets

トラブルシュートチェックリスト

  • ログ全体を確認したか
  • エラーメッセージの前後のコンテキストを読んだか
  • 失敗したステップを特定したか
  • 根本原因を理解したか
  • ローカル環境で再現を試みたか
  • 修正後、ローカルでテストしたか
  • CI/CDで再実行して成功を確認したか

参考資料

GitHub Actions

Screwdriver


重要: このスキルの最も重要な原則は「推測せず、ログを確認する」ことです。必ずログ全体を読んでから対策を講じてください。