GitHub Actions入門:自動化の基本

1. はじめに

ソフトウェア開発では「自動化」が生産性を大きく左右します。
GitHub Actionsは、GitHubリポジトリに統合された強力なCI/CDツールで、テスト・ビルド・デプロイをイベントドリブンで自動化できます。

この記事では、GitHub Actionsの基本概念と、実際に動くハンズオン例を通じて、あなたの開発ワークフローを自動化する第一歩を踏み出します。


2. GitHub Actionsとは?

GitHub Actionsは、GitHubが提供するワークフロー自動化プラットフォームです。
リポジトリ内のイベント(例:push、pull request、issue作成)をトリガーに、定義した一連のタスク(ジョブ)を自動実行します。

主な用途

  • プルリクエスト時の自動テスト
  • コード品質チェック(Lint)
  • Dockerイメージのビルドとデプロイ
  • 本番環境への自動リリース

3. 仕組みの理解

GitHub Actionsでは、以下の3要素で構成されます。

構成要素説明
Workflow(ワークフロー)自動化の全体構成。イベントごとに動作するYAMLファイル。
Job(ジョブ)1つの仮想環境(例:ubuntu-latest)で実行される一連のステップ。
Step(ステップ)実際のコマンドやアクション(再利用可能な処理単位)。

ワークフローは .github/workflows/ 配下に置かれ、リポジトリ内でバージョン管理されます。


4. ハンズオン:Node.jsアプリのテストを自動化しよう

ここでは、Node.jsアプリのテストをGitHub Actionsで自動実行するワークフローを構築します。

🔧 前提条件

  • GitHubアカウントを持っている
  • Node.jsの簡単なプロジェクト(例:package.jsontestスクリプト)

Step 1:リポジトリを作成

GitHub上で新しいリポジトリを作成し、ローカルにクローンします。

git clone https://github.com/yourname/github-actions-demo.git
cd github-actions-demo

Step 2:Node.jsプロジェクトを準備

簡単なプロジェクトを作成します。

npm init -y
npm install jest --save-dev

package.jsonscripts に以下を追加します。

"scripts": {
  "test": "jest"
}

Step 3:テストファイルを作成

sum.jssum.test.js を追加します。

sum.js

function sum(a, b) {
  return a + b;
}
module.exports = sum;

sum.test.js

const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Step 4:ワークフローを作成

次に、GitHub Actionsの設定を追加します。

.github/workflows/ci.yml を作成し、以下を記述します。

name: Node.js CI

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

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: コードをチェックアウト
        uses: actions/checkout@v4

      - name: Node.jsをセットアップ
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: 依存関係をインストール
        run: npm install

      - name: テストを実行
        run: npm test

この設定により、mainブランチへのpushまたはPR時に自動テストが走ります。


Step 5:GitHubにプッシュして実行

git add .
git commit -m "Add GitHub Actions CI"
git push origin main

GitHubのリポジトリで Actionsタブ を開くと、自動的にジョブが開始されます。
テストの結果がリアルタイムで表示され、失敗時には詳細ログも確認可能です。


5. よく使うアクション

アクション名機能
actions/checkoutソースコードを取得
actions/setup-nodeNode.js環境をセットアップ
actions/cachenpmやpipなどの依存関係をキャッシュ
docker/build-push-actionDockerイメージをビルドしレジストリにPush

6. 応用:デプロイの自動化

テストが成功したら、次のステップは自動デプロイです。
GitHub ActionsからAWS、Vercel、Netlifyなどの環境に直接デプロイすることも可能です。

例:Dockerイメージの自動ビルドとPush

- name: Docker Build and Push
  uses: docker/build-push-action@v5
  with:
    push: true
    tags: yourname/app:latest

7. ベストプラクティス

  • Secrets機能でAPIキーなどの機密情報を安全に管理
  • matrix戦略で複数Node.jsバージョンのテストを同時実行
  • ワークフローを分割して責務を整理(CI / CD / Lint)
  • キャッシュを活用して高速化

8. まとめと次のステップ

GitHub Actionsは、YAMLファイル1つで開発サイクルを自動化できる非常に強力なツールです。
初めてのCI設定でも、テスト・ビルド・デプロイまでを簡単に構築できます。

次に学ぶべきステップとしては:

  • Docker + GitHub ActionsでのCI/CD構築
  • GitHub ActionsからAWS ECS/Fargateへ自動デプロイ
  • 再利用可能なWorkflow(Reusable Workflows)の作成

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です