(メモ)GitHub Actionsの実行時間の話。

About billing for GitHub Actions – GitHub Docs

パブリックリポジトリは無料。プライベートリポジトリはリポジトリがどの製品を使っているかで変わってくる。

製品 ストレージ 分 (月あたり)
GitHub Free 500 MB 2,000
GitHub Pro 1 GB 3,000
Organization の GitHub Free 500 MB 2,000
GitHub Team 2 GB 3,000
GitHub Enterprise Cloud 50 GB 50,000

例えば、GitHub Freeアカウントの個人ユーザーが所有するプライベートリポジトリに対してActionsを実行すると、そのユーザーの2000分の枠を消費するが、1リポジトリ2000分ではなく、その人のプライベートリポジトリ全て合わせて2000分である。普通に使っていれば2000分/月は到達しないと思うのでかなりありがたい。RunnerがMacOSだと10倍でカウントされるため、200分/月になる。

ジョブの実行時間 – ワークフロー中のそれぞれのジョブは、最大で6時間の間実行できます。 ジョブがこの制限に達すると、ジョブは終了させられ、完了できずに失敗します。

ワークフローの実行時間 – 各ワークフローの実行は72時間までに制限されます。 ワークフローの実行がこの制限に達すると、そのワークフローの実行はキャンセルされます。

PRで発火するワークフローの実行時間は、PRを発行した人ではなく、リポジトリに対して加算される。…ので、個人のプライベートリポジトリにバンバンPRを投げると、PRを発行した人ではなくリポジトリの所有者の無料枠を消化するし、EnterpriseアカウントにリンクしたOrganizationのリポジトリにPRを投げればその分Enterprise Cloud全体の無料枠を消化する。

パブリックリポジトリにPRを投げてワークフローを走らせてDDoS攻撃するというとんでもない使い方があるそうで感心してしまった。
GitHub Actionsを使ったDDoSに巻き込まれた – 私が歌川です
もちろん規約違反。
GitHub追加製品の利用規約 – GitHub Docs

  • クリプトマイニング;
  • 当社サーバーを使用して、何らかのサービス、デバイス、データ、アカウントまたはネットワークを妨害すること、またはこれらに不正アクセスするかあるいはこれを試みること (GitHub Bug Bounty Program により許可されている場合を除く)、

悪用を防ぐためにリポジトリ上でのActionsの無効化が設定できる。
リポジトリの GitHub アクションの無効化や制限 – GitHub Docs