1. はじめに
CI/CD(継続的インテグレーション/継続的デリバリー)は、モダンなソフトウェア開発において欠かせないプロセスです。GitHub Actionsを活用すれば、リポジトリのイベント(プッシュやプルリクエスト)に応じて、テストやデプロイなどを自動実行するワークフローを簡単に構築できます。
本記事では、GitHub Actionsの基本構造とYAML記述法を解説し、プッシュ時の自動ビルド・テスト・デプロイの設定を実践します。また、よく使われるアクション(checkout, setup-node, actions/cacheなど)や、Secretsを利用したセキュアな環境変数管理についても詳しく紹介します。

2. GitHub Actionsの基本構造とYAML記述法
2.1 GitHub Actionsとは?
GitHub Actionsは、GitHubリポジトリで発生するイベントをトリガーとして、特定の処理を自動実行できるCI/CDツールです。ワークフローはYAML形式で記述され、.github/workflows/
ディレクトリに配置されます。
2.2 YAMLファイルの基本構成
GitHub ActionsのYAMLファイルは、主に以下のような構造になっています。
name: CI/CD Pipeline # ワークフローの名前
on:
push: # push イベント時に実行
branches:
- main # main ブランチにプッシュされた場合のみ
jobs:
build: # ビルドジョブの定義
runs-on: ubuntu-latest # 実行環境(仮想マシン)
steps:
- name: Checkout repository
uses: actions/checkout@v4 # リポジトリのコードを取得
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18' # Node.jsのバージョン指定
- name: Install dependencies
run: npm install # 依存関係のインストール
- name: Run tests
run: npm test # テスト実行
- name: Deploy application
run: echo "Deploying..." # 実際のデプロイコマンドを記述
3. プッシュ時の自動ビルド・テスト・デプロイの設定
3.1 自動ビルドの設定
ビルドプロセスでは、ソースコードを取得し、環境をセットアップした後に、アプリケーションをコンパイル・ビルドします。
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
3.2 自動テストの設定
ビルド後に、アプリケーションが正しく動作するかをテストします。
test:
runs-on: ubuntu-latest
needs: build # buildジョブが完了した後に実行
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
3.3 自動デプロイの設定
テストが成功したら、デプロイ処理を実行します。
例えば、GitHub Pagesにデプロイする場合は以下のようになります。
deploy:
runs-on: ubuntu-latest
needs: test # testジョブが成功したら実行
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist # デプロイ対象ディレクトリ
4. よく使われるアクション
GitHub Actionsには、さまざまな公式・サードパーティ製のアクションが用意されています。ここでは特によく使われるものを紹介します。
4.1 actions/checkout
リポジトリのコードを取得するためのアクションです。
name: Checkout repository
uses: actions/checkout@v4
4.2 actions/setup-node
Node.jsのバージョンを指定してセットアップできます。
name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
4.3 actions/cache
依存関係をキャッシュし、ビルド時間を短縮できます。
name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
5. Secretsを使ったセキュアな環境変数管理
デプロイ時に認証情報(APIキーやパスワードなど)を扱う場合は、GitHubのSecrets機能を利用することで、安全に管理できます。
5.1 Secretsの設定方法
- リポジトリの「Settings」→「Secrets and variables」→「Actions」を開く
- 「New repository secret」をクリック
- 名前(例:
AWS_ACCESS_KEY_ID
)と値を入力し保存
5.2 SecretsをYAMLで参照する方法
登録したSecretsは、${{ secrets.<シークレット名> }}
の形式でアクセスできます。
name: Deploy to AWS
run: aws s3 sync ./dist s3://my-bucket
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
これにより、機密情報をソースコードに直接含めることなく、安全に使用できます。
6. まとめ
GitHub Actionsを活用すると、コードのプッシュ時に自動でビルド・テスト・デプロイを行うCI/CDパイプラインを構築できます。
本記事では、以下の内容を詳しく解説しました。
✅ GitHub Actionsの基本構造とYAML記述法
✅ 自動ビルド・テスト・デプロイの設定
✅ よく使われるアクション(checkout, setup-node, actions/cache など)
✅ Secretsを使った環境変数のセキュアな管理方法