GitHub Actionsとは自動化の仕組みと使い方の基本
GitHub Actionsとは、GitHub上でテストやデプロイなどを自動実行する仕組みです。ワークフロー・ジョブ・ステップの構成、書き方の基本、権限や秘密情報の注意点を整理します。
公的機関・公式資料などの一次情報と照合して作成しています。このサイトについて
GitHub Actionsとは
GitHub Actions とは、GitHub のリポジトリで起きた出来事(コードの送信、プルリクエストの作成など)をきっかけに、あらかじめ決めた処理を自動で実行する仕組みです。テストの実行、ビルド、サーバーへの公開、定期的な処理など、手作業を繰り返す部分を自動化できます。
公式ドキュメントでは、GitHub Actions のコンポーネントとして、ワークフロー、イベント、ジョブ、アクション、ランナーの5つが説明され、ジョブを構成する単位としてステップが登場します。これら6つの関係が分かれば、他人が書いた設定ファイルも読めるようになります。
基本(構成要素と書き方)
| 要素 | 意味 |
|---|---|
| ワークフロー | 自動化の全体。YAMLファイルで定義し、リポジトリの .github/workflows に置く |
| イベント | 実行のきっかけ(push、プルリクエスト、スケジュール、手動など) |
| ジョブ | 同じ実行環境で動く、処理のまとまり |
| ステップ | ジョブ内の1つ1つの作業(コマンド、またはアクションの実行) |
| アクション | 再利用できる、既製の処理のまとまり |
| ランナー | 処理を実行するサーバー(GitHub提供のものか、自前のもの) |
クイックスタートに基づく、最小限の設定ファイルの骨格です。
name: sample
on: [push]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "Hello"
on は実行のきっかけ、jobs は処理のまとまり、runs-on は実行環境、steps は作業の列、uses は既製のアクションの利用です。使うアクションの版(上の v4 など)は、公式の最新の案内を確認してください。
実行結果は、リポジトリの「Actions」タブで確認できます。実行を選ぶと、各ステップのログを展開して見られます。
GitHub Actionsの具体例
よくある自動化の例です。
| 目的 | きっかけ(イベント) | 処理 |
|---|---|---|
| 品質の確認 | プルリクエストの作成 | テストと文法の検査を実行 |
| 公開の自動化 | main への push | ビルドして、サーバーに配置 |
| 定期処理 | 毎日決まった時刻 | データの取得、レポートの作成 |
| 手動の作業 | 手動の実行ボタン | 任意のタイミングで運用処理 |
たとえば、公開手順が手作業で1回15分、週に4回あれば、月に約16回で240分(4時間)です。自動化できれば、この時間を減らせますが、設定の作成と保守、失敗時の対応は別途必要です。
GitHub Actionsの実践ステップ
- 自動化したい作業を、手順として書き出す。
- 実行のきっかけ(イベント)を決める。
- .github/workflows に YAML ファイルを置き、最小の設定から始める。
- Actions タブで、実行とログを確認する。
- 秘密情報(キー、パスワード)は、リポジトリの Secrets に登録して参照する。
- 成功が確認できたら、本番用の処理を追加する。
GitHub Actionsの注意点
- 秘密情報は、YAML に直接書かないでください。Secrets を使います。公開リポジトリでは、特に重要です。
- 外部のアクションを使うときは、提供元と版を確認します。信頼できない第三者のアクションは、秘密情報を盗むおそれがあります。
- 実行時間や利用量には、プランごとの無料枠と上限があります。数値は、公式の最新の課金に関する説明で確認してください。
- 権限は最小限にします。ワークフローに与えるトークンの権限を、必要な範囲に絞ります。
- 定期実行は、利用状況によって、実行が遅れる場合があります。厳密な時刻が必要な処理には注意します。
GitHub Actionsでよくあるミス
- YAML のインデント(字下げ)を間違えて、実行されない。
- ファイルの置き場所を間違える(.github/workflows 以外)。
- ブランチ名の指定を誤り、期待したときに動かない。
- 失敗の通知を設定せず、気づかない。
GitHub Actionsのチェックリスト
- ファイルは、.github/workflows に置いたか。
- 秘密情報は、Secrets に登録したか。
- 外部アクションの提供元と版を確認したか。
- 権限を最小限にしたか。
- 失敗時の通知か確認の手順があるか。
GitHub ActionsのFAQ(よくある質問)
Q. GitHub Actions は無料ですか。
A. 無料枠がありますが、リポジトリの種類やプランによって条件が異なります。上限は変更されることがあるため、公式の最新情報を確認してください。
Q. プログラミングの知識は必要ですか。
A. 設定ファイルの書き方(YAML)の理解と、実行したいコマンドの知識は必要です。既製のアクションを組み合わせれば、コードは最小限で済みます。
Q. 自分のサーバーで実行できますか。
A. できます。ランナーには、GitHub が提供するものと、自前で用意するものがあります。
筆者の見解(GitHub Actions)
GitHub Actions は、書くこと自体より、秘密情報と権限の設計に気を使うべき道具だと考えます。自動化は便利ですが、設定ひとつで公開サーバーへの書き込み権限を、第三者のコードに渡してしまう危険もあるからです。私見では、最初のワークフローは読み取り専用の処理に限り、慣れてから書き込みを伴う自動化へ進む順序が安全です。
GitHub Actionsの関連項目
- GitHubの使い方
- Gitの使い方
- GitHub Projects
- Docker
- Docker Hub
出典(一次情報)
本記事は一般的な情報の提供を目的としています。SaaS・ツールの機能・料金・無料枠・仕様は頻繁に更新されるため、最新の内容は各社の公式ページでご確認ください。契約・法務・セキュリティに関する判断は、専門家や社内の担当部門にご相談ください。「筆者の見解」は一つの考え方です。