Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Actionsを使って指定した日時にPull Requestをマージしたい #l...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for akase244 akase244
January 28, 2026

GitHub Actionsを使って指定した日時にPull Requestをマージしたい #lydmeet

「レイヤード Meetup LT会 vol.8」で発表したスライドです。

Avatar for akase244

akase244

January 28, 2026

More Decks by akase244

Other Decks in Programming

Transcript

  1. January 28, 2026. レイヤード Meetup LT会 vol.8 現状の課題 • Podcastの配信とwebページの公開のタイミングは非連動の状態。

    • Spotify for Creatorsは指定日時に配信が可能。 • webページはSpotify for Creators側の配信が行われたことを確認し てからPull Requestを手動でマージしている。
  2. January 28, 2026. レイヤード Meetup LT会 vol.8 今回実現したいこと • Spotify

    for CreatorsでPodcastを指定した日時に配信。 • GitHubのPull Requestを公開日時の数分後に自動マージしたい。
  3. January 28, 2026. レイヤード Meetup LT会 vol.8 どうやって実現するか • Pull

    Reqeest にラベル「merge-at」を付与。 • ラベル「merge-at」のDescriptionに公開日時を YYYY-MM-DD hh:mm 形式で入力。 • GitHub Actions のワークフローを5分毎に実行。 • Pull Request にラベル「merge-at」が付与されていて、かつ、GitHub Actions の実行日時がラベルのDescriptionに入力されている日時を 過ぎていたらマージする。
  4. January 28, 2026. レイヤード Meetup LT会 vol.8 公式提供ではない他人が作った • Vagrantfile

    • Dockerfile • compose.yaml / docker-compose.yaml • Ansible Playbook • Terraform( .tfファイル) • GitHub Actions はセキュリティ的な観点で信頼してはいけないと教育されてきた
  5. January 28, 2026. レイヤード Meetup LT会 vol.8 そんなことなかった • 8分後

    • 12分後 • 20分後 • 16分後 • 12分後 • 26分後
  6. January 28, 2026. レイヤード Meetup LT会 vol.8 どうやって実現しているのか? • Azure

    Logic Apps ワークフローのスケジュール トリガーで定期的に実 行。 • GitHub Actions の workflow_dispatchトリガーを REST API で呼び出 す。
  7. January 28, 2026. レイヤード Meetup LT会 vol.8 アーキテクチャを変更 • 変更前

    ◦ GitHub Actions の scheduleトリガーで定期的に実行 • 変更後 ◦ Amazon EventBridge で定期的に実行。 ◦ AWS Lambda で GitHub Actions の workflow_dispatchトリガーを 呼び出す。
  8. January 28, 2026. レイヤード Meetup LT会 vol.8 1ヶ月に何分使う計算か? • 1回の実行に約10秒

    • 5分毎に1回なので1時間に12回実行(= 2分/時) • 1日に24回実行(= 48分/日) • 1ヶ月に約30回実行(= 1,440分/日) いや、2,000分は超えてなくね???
  9. January 28, 2026. レイヤード Meetup LT会 vol.8 対策 • AWS

    Lambda のタイムアウト時間が3秒(デフォルト値)は短すぎたの で30秒に変更 • Amazon EventBridge の実行回数を5分毎から10分毎に変更。 • Amazon EventBridge の再試行ポリシーの「最大再試行回数」を明示 的に「1回」に設定する。
  10. January 28, 2026. レイヤード Meetup LT会 vol.8 • GitHub Actions

    の scheduleトリガーはベストエフォート実行。 • AWS Lambda のデフォルトタイムアウト時間(3秒)に注意。 • Amazon EventBridge はエラーが発生すると自動で再試行する。 • GitHub Actions の無料枠を超えたら fail する仕様に感謝。(クラウド破 産するところだった) まとめ