「GitHub Actions、何ができるの?」と疑問に思っていませんか?
現役WEBエンジニアとして、GitHub Actionsを活用しています。
この記事では、GitHub Actionsの基本を解説します。
目次
GitHub Actionsとは
基本概念
- GitHubに組み込みのCI/CD
- Push時に自動でテスト実行
- 無料枠が充実
できること
| 用途 | 例 |
|---|---|
| テスト | 自動テスト実行 |
| ビルド | 本番用ビルド |
| デプロイ | 自動デプロイ |
| Lint | コード品質チェック |
基本構造
ワークフローファイル
# .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
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npm test
主要な要素
| 要素 | 説明 |
|---|---|
| name | ワークフロー名 |
| on | トリガー条件 |
| jobs | 実行するジョブ |
| steps | ジョブ内のステップ |
トリガー(on)
よく使うトリガー
on:
# プッシュ時
push:
branches: [main, develop]
# PR時
pull_request:
branches: [main]
# 定期実行
schedule:
- cron: '0 0 * * *'
# 手動実行
workflow_dispatch:
実践例
Node.jsプロジェクト
name: Node.js CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build
- run: npm test
Vercelデプロイ
name: Deploy to Vercel
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.ORG_ID }}
vercel-project-id: ${{ secrets.PROJECT_ID }}
シークレット
設定方法
- リポジトリ → Settings → Secrets
- New repository secret
- 名前と値を入力
使い方
env:
API_KEY: ${{ secrets.API_KEY }}
キャッシュ
npm キャッシュ
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
手動キャッシュ
- uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
料金
無料枠
| プラン | 分/月 |
|---|---|
| Free | 2,000 |
| Pro | 3,000 |
| Team | 3,000 |
まとめ
GitHub Actions入門のポイント:
- ワークフローファイルを作成
- トリガーを設定
- シークレットでセキュリティ
- キャッシュで高速化
