Github Actionsとは
GitHub Actionsは、簡単に言うと 「GitHubが提供してくれる自動化の仕組み」 です。
あなたがコードを書いて、GitHubにプッシュするたびに、
- 「テストが通るかチェックして」
- 「コードの品質を確認して」
- 「問題なければ自動でデプロイして」
- 「結果をSlackで通知して」
こんなことを毎回手動でやるのって、めちゃくちゃ面倒ですよね?
GitHub Actionsがあれば、これが全部自動でできちゃいます!
どんな時に使うの?
開発でよくあるシーン
-
コードをプッシュした時
- 「テスト実行→OK だったらメインブランチにマージ」を自動化
-
Pull Requestを作った時
- 「コードレビュー前に自動でテストとlintをチェック」
-
メインブランチにマージされた時
- 「自動で本番環境にデプロイ」
-
定期的な作業
- 「毎日深夜にデータベースのバックアップを取る」
GitHub Actionsの仕組み
GitHub Actionsは「ワークフロー」という設定ファイルで動きます。これはYAMLファイルで書いて、.github/workflows/
フォルダに置くだけ!
例えば、こんな感じ:
name: テスト実行
on: [push] # プッシュされたら実行
jobs:
test:
runs-on: ubuntu-latest # Ubuntu環境で実行
steps:
- uses: actions/checkout@v3 # コードを取得
- name: Node.js setup
uses: actions/setup-node@v3 # Node.js環境を準備
- run: npm test # テストを実行
これだけで「コードがプッシュされるたびに自動でテストが走る」ようになります!
なぜ便利なの?
- 人的ミスを減らせる: 「あ、テスト実行し忘れた...」がなくなる
- 時間節約: 手動作業が減って開発に集中できる
- 品質向上: 必ずテストが通ったコードだけがデプロイされる
- チーム開発が楽: みんなが同じ手順で作業できる
つまり、GitHub Actionsは 「面倒な繰り返し作業を自動化してくれる、頼れる助手」 みたいなものです!
GitHub Actionsの使い方
実際にGitHub Actionsを使ってみましょう!
Step1: ワークフローファイルを作る
まず、あなたのGitHubリポジトリに .github/workflows/
というフォルダを作ります。
your-project/
├── .github/
│ └── workflows/
│ └── test.yml ←ここにワークフローファイルを置く
├── src/
└── package.json
Github上の操作でGithub Actionsを追加することもできます。
こちらの記事を参考にしてください。
Step2: 基本的なワークフローを書いてみる
test.yml
ファイルに、こんな感じで書いてみましょう
name: 自動テスト実行
on:
push: # コードがプッシュされた時
pull_request: # プルリクエストが作られた時
jobs:
test:
runs-on: ubuntu-latest # Ubuntu環境で実行
steps:
- name: コードを取得
uses: actions/checkout@v3
- name: Node.js環境を準備
uses: actions/setup-node@v3
with:
node-version: '18'
- name: 依存関係をインストール
run: npm install
- name: テストを実行
run: npm test
Step3: GitHubにプッシュする
このファイルをGitHubにプッシュするだけで、もうワークフローが動き始めます!
git add .github/workflows/test.yml
git commit -m "GitHub Actionsを追加"
git push
Step4: 結果を確認する
GitHubのリポジトリページで「Actions」タブを見ると、ワークフローの実行状況が確認できます!
- ✅ 緑のチェックマーク:成功
- ❌ 赤の×マーク:失敗
- 🟡 黄色の丸:実行中
よくある使い方パターン
パターン1: テスト自動実行
on: [push, pull_request] # プッシュとPR時に実行
run: npm test
パターン2: 自動デプロイ
on:
push:
branches: [main] # mainブランチにプッシュされた時だけ
run: npm run deploy
パターン3: 定期実行
on:
schedule:
- cron: '0 2 * * *' # 毎日午前2時に実行
失敗した時はどうする?
-
Actionsタブで詳細を確認: どこで失敗したかログが見れる
-
よくある原因:
-
npm test
のコマンドが間違ってる - Node.jsのバージョンが合わない
- 必要な環境変数が設定されてない
-
-
修正して再プッシュ: ファイルを直してプッシュすれば、また自動で実行される
「これだけ覚えておけば大丈夫!」ポイント
.github/workflows/
にYAMLファイルを置くon:
で「いつ実行するか」を決めるruns-on:
で「どの環境で実行するか」を決めるsteps:
で「何をするか」を順番に書く