プログラミングHUB
language5分で読めます

CI/CD入門(GitHub Actions)|自動テスト・自動デプロイの基礎を学ぶ

GitHub Actionsを使ったCI/CDの基礎を解説。ワークフローの書き方、自動テスト、自動デプロイの設定方法を実例付きで紹介します。

GitHub Actions実践ガイドも参考にしてください。

関連記事:Git・GitHub入門ガイド

CI/CD(Continuous Integration / Continuous Delivery)は、コードの変更を自動的にテスト・ビルド・デプロイする仕組みです。GitHub Actionsを使えば、GitHubリポジトリと連携して無料でCI/CDを構築できます。

CI/CDとは

CI(継続的インテグレーション)

コードをプッシュするたびに自動でテストやビルドが実行され、問題があればすぐに検知できます。

CD(継続的デリバリー/デプロイ)

テストが通ったコードを自動的にステージング環境や本番環境にデプロイします。

CI/CDのメリット

  • バグの早期発見(プッシュのたびにテスト実行)
  • 手動デプロイの廃止(ヒューマンエラーの削減)
  • レビューの効率化(テストが通っているか一目でわかる)
  • リリースサイクルの短縮

GitHub Actionsの基本

ワークフローファイル

.github/workflows/ ディレクトリにYAMLファイルを配置します。

# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Run linter
        run: npm run lint

      - name: Run tests
        run: npm test

主要な構成要素

要素説明
onワークフローのトリガー条件
jobs実行するジョブの定義
stepsジョブ内の各ステップ
uses再利用可能なアクション
runシェルコマンドの実行

実践的なワークフロー例

自動デプロイ(Vercel)

name: Deploy to Vercel

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: amondnet/vercel-action@v25
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-org-id: ${{ secrets.ORG_ID }}
          vercel-project-id: ${{ secrets.PROJECT_ID }}
          vercel-args: '--prod'

マトリックスビルド

複数のNode.jsバージョンで同時にテストを実行します。

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18, 20, 22]

    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm ci
      - run: npm test

キャッシュの活用

- name: Cache node_modules
  uses: actions/cache@v4
  with:
    path: ~/.npm
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
    restore-keys: |
      ${{ runner.os }}-node-

シークレットの管理

APIキーやトークンは、GitHubリポジトリの Settings > Secrets に登録します。ワークフロー内では ${{ secrets.SECRET_NAME }} で参照できます。コードにハードコードしてはいけません。

料金

GitHub Actionsはパブリックリポジトリでは無料です。プライベートリポジトリでも月2,000分の無料枠があります。

PR楽天ブックス プログラミング書籍楽天ブックスでプログラミング入門書を探す公式サイトで詳細を見る※本コンテンツはアフィリエイト広告を含みます。表示内容は各社公式サイトをご確認ください。

まとめ

CI/CDは一度設定すれば、その後の開発効率を大幅に高めてくれます。まずは「プッシュしたら自動でテストが走る」という最小構成から始めて、徐々にデプロイの自動化へ進みましょう。


あわせて読みたい

あなたに合う次の選び方を見る

30秒で診断してみる
#CI/CD#GitHub Actions#DevOps#自動化#テスト

関連記事