「コードを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

コメント