GitHub Actionsとは?できることと活用例まとめ
はじめに
Reactアプリのデプロイ自動化方法を調べたときに、GitHub Actions を使って実現できるということを知りました。
ですが、そもそも GitHub Actions とは何なのだろう? と思ったので調べてみました。
GitHub Actionsとは?
GitHub Actions は、GitHub が提供するCI/CDプラットフォーム です。
GitHub リポジトリでのイベント(push や PR など)をトリガー にして、
テストやデプロイなどの ワークフローを自動で実行してくれます。
実行環境の仮想マシンも GitHub が提供してくれます。
どんなことができる?
デプロイの自動化以外にもいろいろなことができます。
1. テストの自動化(CI)
- コードを push や PR したときに、自動でテストを実行。
- バグを早めに発見できる。
2. コード品質チェック
- Linter や Formatter を自動で走らせる。
- コードスタイルをチーム全体で統一できる。
3. セキュリティチェック
- 脆弱性スキャン(npm audit や pip-audit など)を自動化。
- Dependabot と組み合わせれば依存関係の自動アップデートも可能。
4. デプロイの自動化(CD)
- main ブランチにマージされたら、自動で AWS や Vercel、S3+CloudFront にデプロイ。
- 手作業でのアップロードが不要に。
5. 定期実行(スケジューリング)
- cron のように「毎日朝9時に処理を実行」といったタスクを自動化できる。
- 例:データ収集、レポート生成、バックアップ。
6. 通知
- Slack や Discord、LINE、メールなどに処理結果を通知。
- エラーが起きてもすぐに気づける。
7. Issue / PR管理
- PR にラベルを自動で付与。
- 放置された Issue を自動でクローズ。
通知方法
GitHub Actions は標準の GitHub 通知以外にも、さまざまな通知方法を使えます。
- GitHub 標準通知(Github上の通知やメール)
- Slack 通知
- Discord 通知
- LINE 通知
- Teams / Google Chat
- メール送信(SMTP)
- Webhook 全般(自前サービスへの連携も可能)
ワークフローの書き方(YAML形式)
GitHub Actions で実行するワークフローの設定は YAMLファイル で記述します。
基本的な構造は以下の通りです。
name: ワークフローの名前
on: # トリガー(いつ実行するか)
push: # コードをpushしたとき
pull_request: # PRを作成したとき
jobs: # 実行する処理のまとまり
job名:
runs-on: ubuntu-latest # 実行環境(例: Ubuntu)
steps: # 処理の手順
- name: ステップ名
run: 実行するコマンド
- uses: actions/checkout@v4 # 既存のアクションを利用
uses:
とは?
-
uses:
は 既存の GitHub Actions(アクション)を呼び出して再利用する ときに使います。 - アクションとは、GitHub 上で公開されている 特定の処理を自動化するための小さなプログラム のことです。
- 公式・非公式あわせて多くのアクションが公開されており、GitHub Marketplace から探すことができます。
例:よく使われるアクション
- uses: actions/checkout@v4 # リポジトリのコードを実行環境にチェックアウト
- uses: actions/setup-node@v4 # 実行環境に Node.js の環境をセットアップ
アクションを使うことで、よく使う処理を簡単に組み込むことができます。
無料で使える範囲
GitHub Actions は無料プランでも使用できますが、利用条件に制限があります。
とはいえ個人開発や小規模プロジェクトでは、無料枠だけで十分活用可能です。
-
パブリックリポジトリ
- 完全無料で無制限に利用可能
- オープンソースプロジェクトなら制限なし
-
プライベートリポジトリ
- 月ごとに 2,000分の実行時間 が無料
- ストレージ容量 500 MB まで無料(月ごとではなく累計)
試してみた
使ってみれば理解が深まると思ったので、簡単なワークフローを作って実行してみました。
push や PR 時に起動し、文字列を出力するだけのシンプルなワークフローです。
手順:
- 空のリポジトリを作成
- 1.のリポジトリに以下のディレクトリを作成
.github/workflows/ - 2.のディレクトリ内に、以下の yamlファイルを作成
name: Hello GitHub Actions
on:
push:
pull_request:
jobs:
say-hello:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Hello from GitHub Actions!"
このリポジトリを GitHub に push したらワークフローが実行されました。
実行結果は GitHub の Actions タブから確認できます。
実際に作成したリポジトリはこちらです。
まとめ
GitHub Actions は、GitHub が提供するCI/CDプラットフォームです。
「デプロイ自動化」だけでなく、
- テスト
- コード品質チェック
- セキュリティスキャン
- 定期処理
- 通知
- Issue/PR管理
など、開発フロー全体を自動化できる便利なツールです。
便利な活用方法があればぜひ教えて下さい。
Discussion