GitHub Actions のしくみ — トリガー → ジョブ → ステップ

📖 このページのゴール:GitHub Actions(ギットハブ・アクションズ) が「○○したら → △△する」のしくみだと腹落ちすること。中身が on(トリガー) → jobs(ジョブ) → steps(ステップ) という形でできていること、処理を動かす ランナー(貸しパソコン) のこと、そして「よく使うきっかけ(トリガー)」を、たとえと表でつかみます。 ← 目次・はじめにへもどる


🟢 GitHub Actions とは?

GitHub Actions は、GitHub に最初から組み込まれている自動化のしくみです。別のサービスを契約したり、サーバーを用意したりする必要はありません。

  • 🟢 GitHub に組み込み:リポジトリ(コードの置き場)にそのまま付いてくる。追加の道具はいりません。
  • 🟢 無料枠あり追加費用なしで始められます(パブリックなリポジトリは標準ランナーが無料。プライベートも毎月の無料分があります。くわしくは第6章)。
  • 🟢 .github/workflows/ の YAML に書く:何を自動でやるかは、リポジトリの中の .github/workflows/(ドット・ギットハブ/ワークフローズ) というフォルダに、YAML(ヤムル)=設定を書くテキストの形式で置きます。このファイル1つが ワークフロー=自動でやる作業の手順書 です。

📁 置き場所のイメージ

あなたのリポジトリ/
└─ .github/
   └─ workflows/
      ├─ ci.yml          ← 手順書その1(例:テストする係)
      └─ release.yml     ← 手順書その2(例:リリースする係)

🤖 たとえ:「○○したら △△する係」

GitHub Actions は、GitHub の中に住んでいる「○○したら △△する係」 だと思ってください。

🤖 「push されたら テストする」 🤖 「PR(プルリクエスト)が来たら チェックする」 🤖 「毎朝9時に バッチを動かす」 🤖 「タグを付けたら リリースを作る」

あなたは「いつ(きっかけ)」と「何をするか(手順)」を1回決めて置いておくだけ。あとは係が勝手に・毎回・同じようにやってくれます。手で覚えておく必要も、押し忘れる心配もありません。


🟢 しくみ:onjobssteps

ワークフロー(手順書)は、大きく 3つの部品 でできています。この3段だけ覚えれば、だいたい読めます。

┌─ ワークフロー(手順書1つ = YAMLファイル1つ)──────────────┐
│                                                            │
│  on:    ← ① いつ動かす?(トリガー=きっかけ)             │
│            例:push されたら                                │
│                                                            │
│  jobs:  ← ② 何をする?(ジョブ=ひとまとまりの仕事)       │
│    ┌────────────────────────────────────────────────┐    │
│    │ test ジョブ   (runs-on: ランナーの上で動く)    │    │
│    │   steps:  ← ③ 手順(ステップ=1つ1つの作業)     │    │
│    │     1. ソースを取ってくる                        │    │
│    │     2. Node を用意する                           │    │
│    │     3. npm test を実行する                       │    │
│    └────────────────────────────────────────────────┘    │
│                                                            │
└────────────────────────────────────────────────────────────┘

3段を表にすると、こうです。

名前(ふりがな) やさしく言うと キーワード
トリガーon いつ動かすか=きっかけ on:
ジョブjobs 何をするか=ひとまとまりの仕事 jobs:
ステップsteps ジョブの中の 1手順 steps:

🟢 読む順番もこの順:手順書を見たら、まず「いつ動く?(on」→「どんな仕事がある?(jobs」→「各仕事の手順は?(steps」と上から追えば OK。

🔧 ランナー=処理を動かす「使い捨ての貸しパソコン」

各ジョブは、宙に浮いて動くわけではありません。どこかのパソコンの上で動きます。その「動かす場所」が ランナー(runner) です。

  • 🟢 ランナー=処理を動かす貸しパソコンGitHub が貸してくれる、まっさらで使い捨てのパソコンです。
  • ジョブごとに runs-on:(ランズ・オン)でどんなパソコンを借りるかを指定します(例:ubuntu-latest=最新の Ubuntu Linux)。
  • 🟢 使い捨て:ジョブが終わると借りたパソコンはまっさらに消えます。だから毎回同じきれいな環境で動く=「自分のパソコンでは動くのに…」を防げます。
  • 🔧 ジョブが複数あると、それぞれ別のランナーで並行に動かせます(だから速い)。
on: push されたら
      │
      ▼
┌─ test ジョブ ─────────┐   ┌─ build ジョブ ────────┐
│ runs-on: ubuntu-latest│   │ runs-on: ubuntu-latest│   ← 別々の貸しパソコン
│ (貸しパソコンA)      │   │ (貸しパソコンB)      │      で並行に動ける
└───────────────────────┘   └───────────────────────┘

🟢 ステップの中身は2種類だけ:usesrun

ジョブの中の各ステップ(手順)は、つきつめると 2通りのどちらか です。

書き方 何をする? たとえ
uses: 既製のアクション(部品)を使う レゴの完成パーツをはめる
run: シェルのコマンドをそのまま実行(例:npm test 自分で手を動かす

🧩 アクションと Marketplace(レゴの部品のたとえ)

uses: で呼び出す アクション(action)=再利用できる既製の部品 です。「ソースを取ってくる」「Node を用意する」のようなよくある作業を、自分で書かずにそのまま使えるようにしたもの。

🧩 アクション=レゴの部品。1個1個は小さな部品でも、組み合わせれば手順書ができあがる。自分で全部を一から作らなくていいのがうれしいところ。

定番の部品(公式アクション)はこんな感じです。

アクション やってくれること
actions/checkout リポジトリのソースコードを取ってくる(たいてい最初のステップ)
actions/setup-node Node.js を用意する(バージョン指定もできる)
actions/upload-artifact ビルドした成果物を保存する(くわしくは第3章)

🟢 こうした部品は GitHub Marketplace(マーケットプレイス)=アクションの市場数千種類公開されています。やりたいことを検索して、見つけて、uses: で呼ぶ——という流れです。

⚠️ ちいさな注意:他人の作った部品を使うときは「信頼」が要ります。安全な使い方(バージョンの固定など)は第5章でくわしく扱います。今は「部品を借りて組み立てる」というイメージだけで OK。


🟢 よく使うトリガー(きっかけ)早見表

いつ動かすか」を決めるのが トリガー(on: です。よく使うものを表にまとめます。まずは push と pull_request の2つを押さえれば十分です。

トリガー(on: いつ動く? よくある使い道 難易度
push コードを push したとき 上げるたびに自動テスト/ビルド 🟢
pull_request PR(プルリクエスト)が来た/更新されたとき マージ前にチェック・レビューBot 🟢
workflow_dispatch 手動実行ボタンを押したとき 好きなタイミングで自分で動かす 🟢
schedule(cron) 決めた時刻に定期的に(cron=定期実行) 毎朝のバッチ、リンク切れチェック 🔧
release / タグ リリースを作った/タグを付けたとき リリースの公開・成果物の添付 🔧

用語ミニ補足:

  • 🟢 cron(クーロン)=「毎朝9時」「毎週月曜」のように時刻で定期実行するきっかけ。schedule で指定します。
  • 🟢 workflow_dispatch(ワークフロー・ディスパッチ)=GitHub の画面に「実行」ボタンが出て、手で好きなときに動かせるきっかけ。

概念だけ先取り(くわしい書き方は第3章)。たとえば「push されたら動かす」は、手順書の先頭でこんな雰囲気になります。

on: push        ← 「push されたら、この手順書を動かす」という宣言

🟢 1行ずつ読むと: on: が「いつ動かすか」を表す見出し。その右の push が「push されたとき」という意味。これだけで「上げるたびに自動で動く係」になります。実際の細かい書き方(ブランチ指定など)は次のページで。


🟢 ひとことで言うと

GitHub Actions は GitHub の中に住む「○○したら △△する係」。手順書(.github/workflows/ の YAML)は、on(いつ)→ jobs(何を)→ steps(どう) の3段でできていて、各ジョブは 使い捨ての貸しパソコン=ランナー の上で動きます。ステップは uses(既製のアクション部品)run(コマンド) のどちらか。まずは push で動かす から始めれば十分です。

➡️ 次へ

次のページ:ワークフローを読む・書く — YAMLとビルド成果物(アーティファクト) → ← 目次・はじめにへもどる