GitHubActions

GitHub Actions 基本とCI/CDパイプライン構築ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

1. GitHub Actions の基本概念と構成要素

GitHub Actions はリポジトリ内で CI/CD パイプラインを直接定義できるサービスです。このセクションでは workflow、job、step がどのように階層化され、全体像を形成するかを把握します。

1‑1. workflow・job・step の役割と関係(H3)

各レベルは「何を」「いつ」「どう実行するか」を明確に分離し、保守性と可視化を高めます。

  • workflow.github/workflows/*.yml に配置し、トリガー (on:) と全体の流れを定義します。
  • job:workflow 内で jobs: 配列に並び、実行環境(OS・ランナー)や依存関係 (needs:) を設定します。
  • step:ジョブ内の steps: に記述し、具体的なコマンドまたは公式アクションを呼び出します。
構成要素 設置場所 主な役割
workflow .github/workflows/*.yml パイプライン全体とトリガー設定
job jobs: 配列 ランナー種別・依存関係の管理
step steps: 配列 個々の処理(checkout、ビルド、テスト)

ポイントworkflow → job → step の階層で設計すると、複雑なデプロイフローでも見通しが良くなります。

参考情報


2. リポジトリシークレットと環境変数の安全な設定方法

機密情報を漏らさずに自動デプロイを実装するには、GitHub Secrets環境変数 の使い分けが必須です。

2‑1. GitHub Secrets の登録手順(H3)

シークレットは暗号化されて保存され、ワークフロー内では ${{ secrets.NAME }} で参照します。

  1. Settings → Secrets and variables → Actions を開く。
  2. 「New repository secret」から AWS_ACCESS_KEY_ID 等を入力し保存する。
  3. ワークフロー例:

ポイント:シークレットはコードに埋め込まず、常に ${{ secrets... }} 経由で使用してください。

2‑2. 環境変数との使い分け(H3)

環境変数は非機密情報の共有に適し、env: キーでジョブ・ステップ単位に設定できます。

ポイント:機密情報は必ず Secrets に、設定値は環境変数に分けることで安全性と可読性が向上します。

参考情報


3. YAML で構築するビルド・テスト・デプロイパイプライン

最新の公式アクションを組み合わせることで、キャッシュ活用やコンテナビルドがシンプルに実装できます。

3‑1. キャッシュ戦略とビルド時間短縮テクニック(H3)

actions/cache@v3setup-node@v4 の組み合わせは、依存パッケージ取得を 約 60 % 短縮できることが公式ドキュメントで報告されています(キャッシュのベストプラクティス)。

ポイントhashFiles('package-lock.json') によるキー生成で、依存が変わったときだけキャッシュが再作成されます。

3‑2. 公式ドキュメントへのリンク


4. 主要クラウドサービスへの自動デプロイ例

本節では AWS Elastic Beanstalk、Azure App Service、Google Cloud Run、Vercel、Netlify の代表的なデプロイ手順を示します。すべてシークレットから認証情報を取得し、環境変数でステージを切り替える設計です。

4‑1. マルチクラウド同時デプロイ(H3)

以下のワークフローはタグプッシュ (v*.*.*) をトリガーに、Docker イメージをビルドした後、AWS と Azure に同時デプロイします。

クラウド 公式アクション (2026) 必要シークレット
AWS Elastic Beanstalk aws-actions/configure-aws-credentials@v3 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
Azure App Service azure/webapps-deploy@v2 AZURE_CREDENTIALS (JSON)
Google Cloud Run google-github-actions/setup-gcloud@v2 GCP_SA_KEY (service‑account JSON)
Vercel vercel/action@v3 VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID
Netlify nwtgck/actions-netlify-cli@v2 NETLIFY_AUTH_TOKEN, NETLIFY_SITE_ID

ポイント:上記テンプレートを .github/workflows/deploy.yml に配置すれば、タグプッシュだけでマルチクラウドへ自動デプロイが完了します。

参考情報


5. 再利用可能なワークフローと Composite Action の作り方

大規模組織や複数リポジトリで同一パイプラインを使い回す場合は、呼び出し可能ワークフローComposite Action が有効です。

5‑1. 再利用可能ワークフローのテンプレート例(H3)

workflow_call を用いると、入力・シークレットを外部から渡せる汎用ビルドテンプレートが作れます。

呼び出し側:

ポイント:テンプレートを一箇所だけ更新すれば、全リポジトリのビルドロジックが即座に反映されます。

5‑2. Composite Action の作成と公開手順(H3)

複数ステップをひとつにまとめた Composite Actionaction.yml に定義し、社内リポジトリまたは Marketplace に公開できます。

利用例:

ポイント:内部ロジックを隠蔽でき、呼び出し側は一行で完結するため可読性が向上します。

参考情報


6. デプロイ失敗時のトラブルシューティングと承認プロセス

自動デプロイは便利ですが、失敗した際に迅速に原因を特定し、安全にロールバックできる仕組みが必要です。

6‑1. 環境保護ルールと手動承認ステップ(H3)

environment: と GitHub Settings の Environments で「Require approval」や「Wait timer」を設定すると、本番デプロイ前にレビュー担当者の承認が必須になります。

ポイント:承認が完了するまでジョブは保留状態になるため、誤って本番環境へデプロイされるリスクを低減できます。

6‑2. ログ分析と典型的エラー例(H3)

失敗時は GitHub の Run タブでステップごとのログを確認し、クラウド側のデプロイ履歴とも照らし合わせます。以下はよくあるエラーと対処法です。

エラーコード 発生原因 推奨対策
AuthenticationFailed (AWS) シークレットが古い、または IAM ロール権限不足 Secrets を最新にし、ポリシーに elasticbeanstalk:* を付与
Docker timeout キャッシュ不整合でレイヤ取得失敗 キーを見直すか --no-cache で再ビルド
ResourceExhausted (GCP) クォータ超過またはメモリ不足 プロジェクトクォータを拡張、もしくは resource_class を上げる

GitHub のフィルタ機能(例:errorsetup-node)でログを絞り込むと原因特定が速くなります。

ポイント:環境保護と詳細ログの組み合わせにより、失敗からの復旧とロールバックが迅速に行えます。


7. 参考資料・リンク集

項目 URL
GitHub Actions ワークフロー構文 https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
キャッシュベストプラクティス(公式) https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows
actions/cache@v3 Marketplace https://github.com/actions/cache
setup-node@v4 Marketplace https://github.com/actions/setup-node
Docker Build‑Push Action (v5) https://github.com/docker/build-push-action
AWS Elastic Beanstalk デプロイガイド https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.html
Azure Web Apps GitHub Actions 連携 https://learn.microsoft.com/en-us/azure/app-service/deploy-github-actions
Google Cloud Run GitHub Actions 設定 https://cloud.google.com/run/docs/tutorials/github-actions
Vercel Action (v3) https://github.com/vercel/action
Netlify CLI Action (v2) https://github.com/nwtgck/actions-netlify-cli
Composite Action 作成ガイド https://docs.github.com/en/actions/creating-actions/creating-a-composite-run-steps-action

以上が Acme 社の開発者向けに最適化した、実務で即活用できる GitHub Actions の全体像です。ご質問や実装上の課題があれば、Acme Tech Support(support@acme.co.jp)までお気軽にお問い合わせください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-GitHubActions