Git・GitHub

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の実践ステップ

  1. 自動化したい作業を、手順として書き出す。
  2. 実行のきっかけ(イベント)を決める。
  3. .github/workflows に YAML ファイルを置き、最小の設定から始める。
  4. Actions タブで、実行とログを確認する。
  5. 秘密情報(キー、パスワード)は、リポジトリの Secrets に登録して参照する。
  6. 成功が確認できたら、本番用の処理を追加する。

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の関連項目

出典(一次情報)

本記事は一般的な情報の提供を目的としています。SaaS・ツールの機能・料金・無料枠・仕様は頻繁に更新されるため、最新の内容は各社の公式ページでご確認ください。契約・法務・セキュリティに関する判断は、専門家や社内の担当部門にご相談ください。「筆者の見解」は一つの考え方です。