ワークフローのトリガーとイベント
プッシュ、プルリクエスト、スケジュールイベントなど、GitHub Actions のワークフローを起動できるさまざまなイベントを学びます。
「ワークフローのトリガーとイベント」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
ワークフローを開始するもの
GitHub Actionsのワークフローは、何もしなくても実行されるわけではありません。開始するための合図が必要です。この合図をトリガーと呼びます。
トリガーは、GitHub Actionsに「何かが起きました。このワークフローを実行する時間です」と伝える特定のイベントです。トリガーを理解することは、開発プロセスを効果的に自動化するうえで重要です。
「on」キーワード
ワークフローファイル(.github/workflowsディレクトリ内の.ymlファイル)では、onキーワードを使ってトリガーを定義します。
このセクションで、GitHub Actionsがワークフローを実行するタイミングを指定します。イベントは1つでも複数でも指定できます。
name: My First Triggered Workflow
on:
push: # This workflow will run on every push event
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run a simple command
run: echo "Workflow triggered!"
コードのpushに反応する
pushイベントは、最も一般的なトリガーの1つです。新しいコミットやマージなど、コードがリポジトリにpushされるたびに発生します。
デフォルトでは、pushトリガーはすべてのブランチで実行されます。
on: push
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Code was pushed!"
対象を絞ったpush
pushトリガーを調整して、特定のブランチへのpushの場合だけ、または特定のファイルパスに変更があった場合だけ実行できます。これにより、ワークフローを最適化できます。
branches: 特定のブランチ名へのpushがあった場合だけ実行します。paths: 指定したディレクトリ内のファイルに変更があった場合だけ実行します。
on:
push:
branches:
- main
- 'feature/*' # Glob pattern for feature branches
paths:
- 'src/**' # Only if changes in src/ directory
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "Push to relevant branch/path detected!"
プルリクエストのチェックを自動化する
pull_requestイベントは、プルリクエストが作成されたとき、同期されたとき(PRブランチに新しいコミットがpushされたとき)、または再オープンされたときにトリガーされます。
変更がメインのコードベースにマージされる前に、テスト、Lint、コードレビューなどの自動チェックを実行するのに適しています。
on: pull_request
jobs:
pr_check:
runs-on: ubuntu-latest
steps:
- name: PR opened/updated
run: echo "A pull request was opened or updated!"
特定のPRアクション
typesを指定すると、pull_requestトリガーをさらに細かく設定できます。これにより、プルリクエストに関する特定のアクションにだけワークフローを反応させられます。
opened: 新しいプルリクエストが作成されたとき。synchronize: PRのブランチに新しいコミットがpushされたとき。reopened: 閉じられたプルリクエストが再オープンされたとき。
on:
pull_request:
types: [opened, synchronize, reopened] # Run only on these PR actions
jobs:
pr_review:
runs-on: ubuntu-latest
steps:
- run: echo "PR action: ${{ github.event.action }}"
時間ベースのトリガー
schedule イベントを使用すると、cron 構文で指定した時刻にワークフローを実行できます。毎日のレポート作成、クリーンアップタスク、定期的なチェックなどに最適です。
cron 構文では、次の5つのアスタリスクで実行日時を表します。minute hour day-of-month month day-of-week。
on:
schedule:
- cron: '0 0 * * *' # Run daily at midnight UTC
- cron: '0 12 * * 1-5' # Run at 12 PM UTC, Mon-Fri
jobs:
scheduled_task:
runs-on: ubuntu-latest
steps:
- run: echo "Scheduled workflow running!"
ワークフローの手動実行
デプロイや特定のメンテナンスタスクなど、ワークフローを手動で実行する必要がある場合があります。そのために workflow_dispatch イベントを使用します。
このトリガーが設定されていると、そのワークフローの GitHub UI に「Run workflow」ボタンが表示され、必要なときに実行できるようになります。
on: workflow_dispatch
jobs:
manual_task:
runs-on: ubuntu-latest
steps:
- run: echo "This workflow was triggered manually!"
基本を超えて
push、pull_request、schedule、workflow_dispatch は最も一般的なイベントですが、GitHub Actions にはほかにも多くのイベントトリガーがあります。
workflow_call: 再利用可能なワークフローを作成するために使用します。repository_dispatch: API 呼び出しを介して外部システムからワークフローを起動するために使用します。- 特定の GitHub イベント(例:
issues、release、fork)に対応するものも多数あります。
トリガーのチャレンジ
コードの変更に関係なく、毎週金曜日の UTC 17:00 に週次レポートを自動生成するワークフローを設定する必要があります。このタスクに最も適したトリガーイベントはどれでしょうか。
トリガーの振り返り
GitHub Actions のトリガーについてよく学びました。ワークフローは、さまざまなイベントによって開始されることを学習しました。
push: リポジトリにプッシュされた変更に対して使用します。pull_request: プルリクエストに関連する処理に対して使用します。schedule: cron を使った時間ベースの定期タスクに対して使用します。workflow_dispatch: UI または API から手動で実行する場合に使用します。
適切なトリガーを選ぶことが、効果的で効率的な CI/CD パイプラインを構築する第一歩です。
よくある質問
「ワークフローのトリガーとイベント」レッスンは無料ですか?
はい。「ワークフローのトリガーとイベント」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「ワークフローのトリガーとイベント」で何を学びますか?
プッシュ、プルリクエスト、スケジュールイベントなど、GitHub Actions のワークフローを起動できるさまざまなイベントを学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「ワークフローのトリガーとイベント」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ワークフローのトリガーとイベント
- GitHub Actions によるテスト実行
- Lint とコード品質チェック
- 依存関係のキャッシュによるビルド高速化