Webhookとcronで作る自動化パイプライン

Webhook駆動の自動化システムを設計・実装する方法を実例で紹介。

自動化の2つのトリガー

イベント駆動(Webhook)と時間駆動(cron)。組み合わせが最強。

設計例

  1. GitHub Webhookでpushを検知
  2. ビルド&テスト実行
  3. 結果をSlack通知
  4. 失敗時はcronで定期リトライ

実装

app.post("/webhook", (req, res) => {
  const event = req.headers["x-github-event"];
  queue.push({ event, payload: req.body });
  res.status(200).send("ok");
});

まとめ

Webhookでリアルタイム性、cronで確実性。両方使え。