building-cicd-pipelines について
ビルドとデプロイを自動化したい開発者向けのスキルです。GitHub Actions、GitLab CI、Jenkins、CircleCI、Azure DevOps の多段階構成を生成し、テストやセキュリティスキャン、デプロイ承認、ロールバックを扱います。
主な機能
- 01複数 CI/CD プラットフォームの設定生成
- 02テスト、ビルド、デプロイ段階の定義
- 03依存関係キャッシュとマトリックスビルド
- 04シークレット参照と本番承認の設定
- 05パイプライン構文の検証
活用シーン
- 01アプリケーションの CI/CD パイプライン作成
- 02複数ランタイムでのマトリックステスト設定
- 03本番デプロイへの承認とヘルスチェック後のロールバック追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jeremylongshore/ tons-of-skills-marketplace --skill building-cicd-pipelinesインストール後、Claude Code で/building-cicd-pipelinesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/README.mdreferences/README.mdscripts/README.md詳細
CI/CD パイプラインの構築
現状
!ls .github/workflows/*.yml .gitlab-ci.yml Jenkinsfile .circleci/config.yml 2>/dev/null || echo 'No CI/CD config found'
概要
GitHub Actions、GitLab CI、Jenkins、CircleCI、Azure DevOps 向けの CI/CD パイプライン構成を生成します。リンティング、テスト、コンテナイメージのビルド、セキュリティスキャン、適切な承認ゲートとロールバックの仕組みを備えたステージング/本番環境へのデプロイまでを網羅する、複数ステージのワークフローを作成します。
前提条件
- 対応プラットフォーム(GitHub、GitLab、Bitbucket、Azure DevOps)でホストされている Git リポジトリ
- イメージをビルドする場合は、コンテナランタイム(Docker)
- パイプラインのシークレットとして設定された、デプロイ先環境の認証情報
- ヘッドレスで実行できるテストスイート(
npm test、pytest、go testなど) - ブランチ戦略(トランクベース、GitFlow、環境ブランチ)の理解
手順
- 既存の CI/CD 構成ファイル(
.github/workflows/、.gitlab-ci.yml、Jenkinsfile、.circleci/config.yml)をプロジェクト内で検索します - アプリケーションスタックを特定します:言語、フレームワーク、テストランナー、パッケージマネージャー、デプロイ先
- パイプラインのステージを定義します:
lint->test->build->security-scan->deploy-staging->integration-test->deploy-production - 適切なトリガー(main へのプッシュ、PR イベント、タグ)を設定したパイプライン構成ファイルを生成します
- 依存関係(
node_modules、.pip-cache、Go モジュール)をキャッシュして、ビルド時間を短縮します - 必要に応じて、複数の言語バージョンや OS ターゲット向けのマトリックスビルドを設定します
- デプロイ認証情報、コンテナレジストリのトークン、API キーをシークレット参照として追加します(ハードコードしないでください)
- 本番環境への手動承認や、ヘルスチェック失敗時の自動ロールバックなど、デプロイの承認ゲートを実装します
- ビルド結果を示すステータスバッジと通知(Slack、メール)を追加します
- プラットフォーム固有のツール(
actionlint、gitlab-ci-lint)を使用してパイプラインの構文を検証します
出力
- パイプライン構成ファイル(
.github/workflows/*.yml、.gitlab-ci.yml、Jenkinsfile) - コンテナビルド用の Dockerfile(マルチステージ、最小限のベースイメージ)
- パイプラインから参照されるデプロイスクリプトまたは Kubernetes マニフェスト
- ステージング環境と本番環境用の環境別変数ファイル
エラー処理
| エラー | 原因 | 解決策 |
|---|---|---|
Pipeline triggered but no jobs run | トリガー条件(パス、ブランチ)が一致していません | on:/only:/rules: のフィルターを確認し、ブランチ名を検証します |
Docker build failed: layer cache miss | キャッシュキーが変更されたか、キャッシュの有効期限が切れています | コンテンツベースのキャッシュキー(hashFiles('**/package-lock.json'))を使用し、キャッシュバックエンドを確認します |
Secret not found | シークレット名が一致していないか、パイプライン設定で指定されていません | リポジトリ/プロジェクト設定で、シークレット名が完全一致していること(大文字と小文字を区別)を確認します |
Deploy failed: unauthorized | デプロイ認証情報が期限切れ、または正しくありません | 認証情報をローテーションし、パイプラインのシークレットを更新して、IAM ロール/サービスアカウントの権限を確認します |
Tests pass locally but fail in CI | 環境の違い(OS、Node のバージョン、タイムゾーン) | パイプライン構成でランタイムのバージョンを固定し、matrix を使って複数の環境でテストします |
例
- 「Node.js アプリ向けの GitHub Actions ワークフローを作成してください。ESLint でリンティングし、Jest でテストを実行し、Docker イメージをビルドして ECR にプッシュし、PR のマージ時に EKS のステージング環境へデプロイします。」
- 「並列テストジョブ、SAST スキャン、本番環境への手動デプロイ承認ゲートを備えた GitLab CI パイプラインを生成してください。」
- 「Docker エージェントで Python テストを実行し、カバレッジを SonarQube に公開して、Terraform 経由でデプロイする Jenkins パイプラインを構築してください。」
リソース
- GitHub Actions:https://docs.github.com/en/actions
- GitLab CI/CD:https://docs.gitlab.com/ee/ci/
- Jenkins Pipeline:https://www.jenkins.io/doc/book/pipeline/
- CI/CD のベストプラクティス:https://martinfowler.com/articles/continuousIntegration.html
コメント
Markdown 対応