GitHub Actions入門【副業エンジニアが使える自動化レシピ5選】

「コードをpushするたびに手動でテストしてデプロイしてる」というのは、副業で時間が取れないエンジニアには結構きつい作業です。

GitHub Actionsを使えば、push→テスト→デプロイまで全自動にできます。しかも無料枠が月2,000分(パブリックリポジトリは無制限)あるので、個人開発・副業レベルなら費用ゼロで使えます。

この記事では、副業に役立つGitHub Actionsのレシピを5つ紹介します。

GitHub Actionsとは?

GitHubに組み込まれたCI/CDツールです。.github/workflows/ にYAMLファイルを置くだけで、様々なイベントをトリガーに自動処理を実行できます。

主なユースケース:

  • コードpush時にテストを自動実行
  • mainブランチへのマージ時に自動デプロイ
  • スケジュール実行(定期バッチ処理)
  • Issue・PRへの自動コメント

レシピ1: Node.jsアプリの自動テスト

name: Test
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm test

pushするたびに自動でテストが走ります。PRにもテスト結果が表示されるので、チームでの副業案件にも使いやすい。

レシピ2: Vercelへの自動デプロイ

name: Deploy to Vercel
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run build
      - 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'

mainにマージした瞬間にVercelへデプロイ完了。副業でWebアプリを納品するときに重宝します。

レシピ3: Pythonスクリプトの定期実行

name: Daily Task
on:
  schedule:
    - cron: '0 0 * * *'  # 毎日UTC 0時(JST 9時)
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - run: pip install -r requirements.txt
      - run: python main.py
        env:
          API_KEY: ${{ secrets.API_KEY }}

スクレイピング・データ収集・定期レポート生成など、副業の自動化タスクをサーバーなしで動かせます。

レシピ4: Dockerイメージの自動ビルド&プッシュ

name: Build and Push Docker Image
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - uses: docker/build-push-action@v5
        with:
          push: true
          tags: username/myapp:latest

SaaSアプリをDockerで提供している場合、mainへのpushで自動的に最新イメージが公開されます。

レシピ5: Slack通知付きリリースノート自動生成

name: Release
on:
  push:
    tags: ['v*']
jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true
      - name: Notify Slack
        uses: rtCamp/action-slack-notify@v2
        env:
          SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
          SLACK_MESSAGE: '新バージョンをリリースしました!'

タグを打つだけでリリースノートが自動生成されてSlackに通知。クライアントへの報告が楽になります。

Secretsの設定方法

APIキーなどはコードに直書きせず、GitHubのSecretsに登録します。

リポジトリ → Settings → Secrets and variables → Actions → New repository secret

無料枠の目安

| プラン | 無料分/月 | 備考 |

|——|———|—–|

| パブリックリポジトリ | 無制限 | 完全無料 |

| プライベート(無料プラン) | 2,000分 | 副業レベルなら十分 |

| プライベート(Pro) | 3,000分 | 月$4 |

まとめ

GitHub Actionsは副業エンジニアの「時間を買う」ための最強ツールの一つです。一度ワークフローを組んでしまえば、手動作業がゼロになります。

まずはレシピ1の自動テストから試してみてください。YAMLを1ファイル追加するだけで動きます。

  • GitHub Actions 公式ドキュメント: https://docs.github.com/ja/actions
  • Marketplace(使えるAction一覧): https://github.com/marketplace?type=actions

関連記事

コメント

タイトルとURLをコピーしました