🌵

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. 空のリポジトリを作成
  2. 1.のリポジトリに以下のディレクトリを作成
    .github/workflows/
  3. 2.のディレクトリ内に、以下の yamlファイルを作成
.github/workflows/hello.yml
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