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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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

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

Avatar for akase244

akase244

January 28, 2026
Tweet

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 する仕様に感謝。(クラウド破 産するところだった) まとめ