「CI/CDを始めてみたいけど、何から手をつければいいかわからない」「GitHubは使ってるけど、Actionsって何?」
そんな疑問を持っている方におすすめなのがGitHub Actionsです。GitHubを使っているなら、追加の登録なしですぐに始められ、しかも無料で使えるのが大きな魅力です。
この記事では、GitHub Actionsとは何か、無料で使える範囲、基本的な使い方まで、初心者の方にもわかりやすく解説します。
GitHub Actionsとは?
GitHub Actionsは、GitHubが提供するCI/CD(継続的インテグレーション/継続的デリバリー)サービスです。
リポジトリへのプッシュやプルリクエストをきっかけに、テストやビルド、デプロイなどの作業を自動で実行できます。
GitHub Actionsでできること
- コードをプッシュしたら自動でテストを実行
- プルリクエストが作成されたらコードの品質チェック
- テストに合格したら自動でサーバーにデプロイ
- 定期的にスクリプトを実行(cronのような使い方)
- 手動でボタンを押してワークフローを起動
GitHubと完全に統合されているため、外部サービスを使うよりも設定がシンプルで、導入のハードルが低いのが特徴です。
GitHub Actionsの料金体系
「無料で使える」と言われても、本当に無料なのか気になりますよね。ここでは料金体系を詳しく解説します。
パブリックリポジトリは完全無料
オープンソースなど、パブリック(公開)リポジトリでは、GitHub Actionsは完全無料で使い放題です。時間制限もありません。
個人の学習用リポジトリや、ポートフォリオを公開している場合は、無料で好きなだけ使えます。
プライベートリポジトリの無料枠
プライベート(非公開)リポジトリでは、プランによって無料で使える時間が決まっています。
| プラン | 月間の無料枠 | ストレージ |
|---|---|---|
| Free | 2,000分 | 500MB |
| Pro | 3,000分 | 1GB |
| Team | 3,000分 | 2GB |
| Enterprise | 50,000分 | 50GB |
Freeプランでも月2,000分使えます。1回のテストが3分だとすると、1日20回以上テストを実行しても余裕がある計算です。個人開発なら十分な量です。
OSによる時間の計算方法
注意点として、使用するOSによって時間の計算が変わります。
| OS | 時間の倍率 |
|---|---|
| Linux | 1倍(1分 = 1分) |
| Windows | 2倍(1分 = 2分消費) |
| macOS | 10倍(1分 = 10分消費) |
Linuxを使えば無料枠を最大限活用できます。Webアプリケーションの開発なら、ほとんどの場合Linuxで問題ありません。
GitHub Actionsの基本用語
GitHub Actionsを使う前に、覚えておきたい基本用語を解説します。
ワークフロー(Workflow)
自動化したい一連の処理をまとめたものです。YAMLファイルとして.github/workflows/ディレクトリに保存します。
イベント(Event)
ワークフローを実行するきっかけとなるアクションです。例えば「pushされたとき」「プルリクエストが作成されたとき」などがあります。
ジョブ(Job)
ワークフロー内で実行される処理のまとまりです。複数のジョブを並列で実行したり、順番に実行したりできます。
ステップ(Step)
ジョブ内で実行される個々のタスクです。「コードを取得する」「テストを実行する」などの1つ1つの作業がステップになります。
アクション(Action)
再利用可能な処理のパッケージです。GitHub Marketplaceで公開されているものを使ったり、自分で作成したりできます。
はじめてのワークフローを作ってみよう
実際に簡単なワークフローを作ってみましょう。ここでは、コードをプッシュしたときに自動でテストを実行する例を紹介します。
ワークフローファイルの作成
リポジトリに.github/workflows/ディレクトリを作成し、その中にtest.ymlというファイルを作ります。
# .github/workflows/test.yml
name: テストを実行
# いつ実行するか
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# 何を実行するか
jobs:
test:
runs-on: ubuntu-latest # Linuxで実行
steps:
# コードを取得
- uses: actions/checkout@v4
# Node.jsをセットアップ
- name: Node.jsをセットアップ
uses: actions/setup-node@v4
with:
node-version: '20'
# 依存関係をインストール
- name: 依存関係をインストール
run: npm ci
# テストを実行
- name: テストを実行
run: npm test
このファイルをコミットしてプッシュすると、次からmainブランチへのプッシュやプルリクエストのたびに自動でテストが実行されます。
ワークフローファイルの読み方
- name:ワークフローの名前(GitHubのActionsタブに表示される)
- on:いつ実行するか(トリガー)を指定
- jobs:実行する処理を定義
- runs-on:どのOSで実行するか
- steps:実行する手順を順番に記述
- uses:公開されているアクションを使用
- run:シェルコマンドを実行
GitHub Actionsを使うメリット
他のCI/CDツールと比べた、GitHub Actionsのメリットを紹介します。
1. GitHubとの統合がスムーズ
GitHubのリポジトリ内で完結するため、外部サービスとの連携設定が不要です。プルリクエストのページでテスト結果を直接確認できます。
2. 始めるのが簡単
YAMLファイルを1つ作成するだけで始められます。サーバーを用意したり、複雑な設定をしたりする必要がありません。
3. 豊富なアクションが使える
GitHub Marketplaceには、多くの開発者が作成したアクションが公開されています。自分で一から書かなくても、必要な機能を簡単に追加できます。
4. 無料で始められる
パブリックリポジトリなら完全無料、プライベートリポジトリでも月2,000分の無料枠があります。学習やサイドプロジェクトに最適です。
GitHub Actionsのデメリット・注意点
メリットだけでなく、注意点も知っておきましょう。
1. GitHubに依存する
GitHub Actionsを使うと、GitHubから離れにくくなります。将来、別のサービスに移行する可能性がある場合は考慮が必要です。
2. 複雑なパイプラインには工夫が必要
シンプルなCI/CDには最適ですが、非常に複雑なパイプラインを組む場合は、Jenkinsなど専門のツールの方が柔軟に対応できることもあります。
3. macOSの実行コストが高い
iOSアプリの開発などでmacOSを使う場合、時間の消費が10倍になるため、無料枠を超えやすくなります。
まとめ
この記事で解説した内容をまとめます。
| 項目 | 内容 |
|---|---|
| GitHub Actionsとは | GitHubが提供するCI/CDサービス |
| 料金(パブリック) | 完全無料、時間制限なし |
| 料金(プライベート) | Freeプランで月2,000分まで無料 |
| 始め方 | .github/workflows/にYAMLファイルを作成 |
| メリット | GitHubとの統合、簡単な設定、豊富なアクション |
| おすすめの人 | GitHubユーザー、CI/CD初心者、個人開発者 |
GitHub Actionsは、CI/CDを始める最初の一歩として最適なツールです。パブリックリポジトリなら完全無料で使えるので、まずは試してみてはいかがでしょうか。
実際にGitHub Actionsを使って自動デプロイを体験するハンズオン記事も公開予定ですので、ぜひそちらもチェックしてみてください。