Communityコーディング&開発github.com

bentoms-dev/github-actions-cicd-engineer

GitHub Actions を使用して、高速で安全かつ保守容易な CI/CD パイプラインを構築します。ワークフローの作成や修正、遅い CI の高速化、キャッシュ、マトリックス、デプロイメントの追加、シークレットと環境の管理、サプライチェーン攻撃対策、リリースとプレビューデプロイの設定などに使用します。

github-actions-cicd-engineer とは?

このスキルは、GitHub Actions を活用した CI/CD パイプラインの設計・構築・改善に関するベストプラクティスを提供します。プルリクエスト時の高速なチェック(インストール、リント、型チェック、テスト、ビルド)から、メインブランチへのマージ時のアーティファクトの再利用、ステージング/プロダクションへのデプロイまで、一貫したパイプラインの形状を定義します。速度面では、依存関係キャッシュの組み込み設定やテストスイートのシャーディング、タイムアウト設定など、開発者の待ち時間を最小化する手法をカバー。セキュリティ面では、最小権限の付与、サードパーティアクションのSHAピン留め、スクリプトインジェクション防止、OIDCによる一時的なクラウド認証情報の利用、環境ごとのシークレット管理、Dependabot による依存関係監視など、サプライチェーン攻撃に対する厳格な対策を徹底します。さらに、プレビューデプロイやスモークテスト、カンバセーショナルコミットに基づくリリース自動化、アクションリントによるワークフローファイルの検証など、保守性と信頼性を高める実践的なアドバイスが含まれています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bentoms-dev/skills/tree/HEAD/skills/engineering/github-actions-cicd-engineer

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

GitHub Actions CI/CD エンジニア

開発者が待つことのない十分な速さで、問題を確実にキャッチする厳格さ、そしてリポジトリを危険にさらせない堅牢性を備えたパイプラインを構築します。

パイプラインの形状

  • プルリクエスト時: インストール、リント、型チェック、ユニットテスト、結合テスト、ビルド。独立したジョブは並列実行します。
  • メインブランチへのマージ時: 上記と同じチェックを実行後、アーティファクトを一度ビルドし、同じアーティファクトをステージング、次にプロダクションにデプロイします。
  • フェイルファスト: 最も安価なチェックを最初に、または高価なチェックと並行して実行します。
  • concurrency を使用して、同じブランチの後続の実行をキャンセルします:
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
  • パスフィルターを使用して、ドキュメントのみの変更では重いジョブをスキップしますが、必須のステータスチェックは満たせるようにします(軽量な常時実行ジョブまたは条件付きステップを使用します)。

高速化

  • セットアップアクションの組み込みキャッシュ(actions/setup-node の cache: npm、setup-python の cache: pip)で依存関係をキャッシュし、ビルド出力(Next.js .next/cache、Turborepo、Gradle)をロックファイルをキーとしてキャッシュします。
  • 再現可能なインストールには npm ci(または同等の frozen-lockfile インストール)を使用します。
  • 遅いテストスイートをマトリックスでシャーディングします。エンドツーエンドテストはビルド済みアプリに対してのみ実行します。
  • すべての結果が必要な場合は fail-fast: false、失敗を知るだけでよい場合は true をマトリックスに設定します。
  • すべてのジョブに timeout-minutes を設定し、ハングした実行で時間を消費しないようにします。

セキュリティ強化

  • すべてのワークフローの先頭で最小権限のパーミッションを設定し、必要な場合にのみジョブごとに権限を拡大します:
permissions:
  contents: read
  • サードパーティのアクションは完全なコミットSHAに固定し、バージョンをコメントで記載します(uses: owner/action@<sha> # v4.2.0)。Dependabot または Renovate に更新を任せます。
  • pull_request_target や workflow_run を使用して、信頼できないPRコードをシークレット付きでチェックアウトして実行してはいけません。フォークされたPRはシークレットや書き込みトークンを取得できません。
  • スクリプトインジェクションを防止します: 信頼できないコンテキスト(github.event.pull_request.title、Issue本文、ブランチ名など)を直接 run: に展開しないでください。env: を介して渡し、変数を引用符で囲みます。
  • OIDC(id-token: write)を使用して、シークレットとして保存された長期キーの代わりに、短期間のクラウド認証情報を取得します。
  • デプロイシークレットは、リポジトリ全体のシークレットではなく、環境に、必須レビューアとブランチ保護ルールとともに配置します。
  • シークレットをエコーしないでください。set -x やデバッグログに注意してください。
  • npm と GitHub Actions に対して Dependabot を有効にし、依存関係監査またはコードスキャンジョブを実行します。

デプロイメント

  • 環境(staging、production)を介して、保護ルールとURL付きでデプロイします。
  • デプロイを冪等にし、ロールバック可能にします(以前のアーティファクトまたはタグを再デプロイします)。
  • データベースマイグレーションを、現在実行中のバージョンと後方互換性のある、明確に順序付けられたステップとして実行します。
  • プラットフォームがサポートする場合は、PRごとにプレビューデプロイを使用し、PRにURLをコメントします。
  • デプロイされたURLに対してスモークテストを実行し、失敗した場合はジョブを失敗させます。

保守性

  • 繰り返しのセットアップを、複合アクションまたは再利用可能なワークフロー(workflow_call)に抽出します。
  • ジョブとステップに明確な名前を付けます。必須のステータスチェックはジョブ名に依存するため、名前の変更は慎重に行います。
  • 再現性が自動アップグレードよりも重要な場合は、ランナーイメージを固定します(ubuntu-24.04)。
  • actionlint を使用してワークフローファイルを検証します。

リリース

  • カンバセーショナルコミットからバージョニングとチェンジログを自動化します(例: release-please または changesets)。
  • パッケージを出所情報付きで公開します(npm publish --provenance)。サポートされている場合は OIDC を使用します。

出力

パイプライン(トリガー、ジョブ、ジョブ間の依存関係)、予想される実行時間(改善前後)、付与されたパーミッションとその理由、必要なシークレットと環境、およびリポジトリ設定(ブランチ保護、必須チェック、環境)で必要な手動セットアップについて説明します。


さらに詳しく: Security Audit Pro と Observability & Incident Response は、リンクされたスキル、プロダクションテンプレート、スクリプト、評価プロンプトを備えたプレミアムスキルパックです。

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

bentoms-dev/ai-feature-engineer

Build reliable, safe and affordable LLM-powered features in real products. Use when adding chat, summarisation, extraction, classification, RAG search, tool calling or agents to an app, when writing prompts or evals, choosing models, controlling cost and latency, or defending against prompt injection.

bentoms-dev/docs-readme-writer

Write developer documentation people actually read and trust. Use when creating or improving a README, getting-started guide, API reference, architecture decision record (ADR), runbook, onboarding guide, changelog or contributing guide, or when docs are outdated, confusing or missing.

bentoms-dev/postgres-migrations-engineer

Design PostgreSQL schemas, write zero-downtime migrations and fix slow queries. Use when adding tables, columns, indexes or constraints, changing data on a live database, reviewing a migration for locking risks, reading EXPLAIN ANALYZE output, or working with Prisma, Drizzle, Knex, TypeORM, Rails or Django migrations.

bentoms-dev/shopify-theme-architect

Build, refactor and review Shopify Online Store 2.0 themes. Use when creating or editing Liquid sections, blocks, snippets, templates, theme settings, locales, or theme CSS/JS, and when reviewing a theme for performance, accessibility or merchant editability.

bentoms-dev/test-engineer

Write tests that catch real bugs and survive refactors. Use when adding tests to new or existing code, choosing between unit, integration and end-to-end tests, fixing flaky tests, setting up Vitest, Jest or Playwright, or reviewing a test suite for gaps and brittleness.

関連スキル