Appearance
workflow_dispatch 參數,是 GitHub Actions 手動觸發 workflow 時可以填的輸入欄位。
你可以把它想成:
執行 workflow 前,先讓你輸入一些值,再把這些值傳進流程裡用。
範例

注意
GitHub Actions 裡這些 input 通常會以字串處理,所以像:
yaml
default: true很多情況下你還是要當成 "true" 來比對。
例如:

如何透過 Workflow 來監控其他 WorkFlow
1️⃣ workflow_run 是監聽其他 workflow 的事件
在 GitHub Actions 裡有三個常見「workflow 相關事件」:
| 事件 | 觸發對象 | 說明 |
|---|---|---|
workflow_dispatch | 觸發自己 workflow | 手動執行 workflow |
workflow | workflow 定義變更 | workflow YAML 被更新時觸發 |
workflow_run | 其他 workflow 執行完成 | 當 repo 裡的某個 workflow 執行完成(成功、失敗、取消)時觸發 |
重點:
workflow_run可以監聽「其他 workflow 的完成事件」,不是只監聽自己的 workflow。
2️⃣ 怎麼監聽特定 workflow
yaml
on:
workflow_run:
workflows: # 可選,指定要監聽的 workflow 名稱
- "CI"
- "Build"
types:
- completedtypes: completed表示 workflow 結束後才觸發。- 透過 github.event.workflow_run.conclusion 可以判斷成功 (
success)、失敗 (failure) 或取消 (cancelled)。
3️⃣ 為什麼可以監聽其他 workflow
GitHub Actions 的架構是 事件驅動 (event-driven):
- 每個 workflow 執行完成後,都會在內部生成一個事件 payload。
- 其他 workflow 可以訂閱這個事件 (
workflow_run)。 - 這個 payload 包含 workflow 名稱、狀態、提交 SHA 等資訊。
所以你可以寫一個 workflow 專門做通知、審核、或自動化處理,而不需要修改原本的 workflow。
4️⃣ 實務應用
- 失敗通知 → 任何 workflow 失敗時觸發 Telegram/Slack 通知。
- 依賴 workflow → workflow B 只有在 workflow A 成功後才執行(可用
if: github.event.workflow_run.conclusion == 'success')。 - 統計/審計 → 收集所有 workflow 結果,生成報表。
重點欄位
github.event.workflow_run.name失敗的是哪個 workflowgithub.event.workflow_run.head_branch哪個分支觸發github.event.workflow_run.head_sha哪個 commitgithub.event.workflow_run.html_url該次 workflow 執行頁面連結