E2E テストを一日中回す:GitHub Actions を定額で
コーディングエージェントは、昼も夜もコードを push します。エージェントが書く単体テストに見えないもの、つまりログイン・決済・変更のまわりの画面がまだ一緒に動くかを確かめるのが E2E テストです。夜に 1回しか回さないチームは、朝にマージされた退行を次の夜まで見つけられず、その上に 1日分のマージが積み上がります。一日中回せばそれは防げますが、分課金のランナーでは CI でいちばん高くつきます。4 vCPU のランナー 1つを 1か月動かし続けると、GitHub では 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。です。
Skipbox なら、そのループが月 6,000 円の定額・実行時間無制限で回ります。マシンはアカウント専用で、ブラウザーとパッケージが実行のあいだも残ります。移行は runs-on: skipbox の 1行だけです。
push のたびに、そしてループで回す
1つのワークフローに、きっかけを 2つ入れます。
- プルリクエストへの push のたび。 マージの前に退行を止めます。
- main やステージングに向けた 15分ごとのスケジュール。 不安定なテスト、すり抜けた退行、自分のコードの外の故障(決済のサンドボックス、認証のプロバイダー、ブラウザーの更新)が数分で見つかります。
GitHub のスケジュールは最短 5分ごとで、既定のブランチの最新のコミットで動きます。concurrency のグループを使えばループが積み上がらず、Playwright のリトライで落ちてから通ったテストに flaky の印がつきます。50回に 1回落ちるテストも、1週間隠れたりせず、一日に 2回ほど出てきます。
分課金でループを回すと
15分ごとなら 1日 96回です。シャードをいくつか使えば、ランナーは毎日ほとんど一日中動いています。
| 4 vCPU の E2E の 1か月 | GitHub | Skipbox S | 毎月の差額 |
|---|---|---|---|
| 10,000分 | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 | 6,000 円 | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 |
| 20,000分 | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 | 6,000 円 | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 |
| 30,000分 | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 | 6,000 円 | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 |
| 1か月動かし続ける | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 | 6,000 円 | 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。 |
GitHub の額は、GitHub Team に含まれる無料分を引いたあとの請求です。シャード 4つでループを回せば、最後の行が 4つ分になります。自分のチームの分数は、トップページの料金計算で出せます。
この請求があるから、多くのチームは E2E を一日中は回しません。その代わりに時間で払っています。夜にエージェントがマージした退行は朝まで見つからず、その上にコミットが重なり、原因を探す時間はループが節約したはずの時間を超えます。GitHub によると、エージェントの下書きから始まるプルリクエストは 2026年9月に 40% を超えました(3月は 17%)。分課金の請求を予算で抑えれば、月の途中でジョブが止まり、ループがいちばん要るときに止まります。
自分でループを回そうとすると
GitHub ホストランナーのまま払える額に収めるには、こういう作業になります。
- スケジュールを 1時間ごとや夜 1回に減らし、見つかるのが遅くなるのを受け入れる
- どのきっかけでどのテストを走らせるかを、予算に合わせて調整し続ける
- シャードで早く終わらせ、そのぶん準備の分数をシャードの数だけ払う
- ループ用にセルフホストランナーを立て、ブラウザー・OS・ディスクを自分で保守する
Skipbox なら、どれだけ回しても請求は同じで、マシンの面倒もだれも見る必要がありません。
Skipbox でループに渡せるもの
一日中回しても定額
どのプランも、一日中ジョブを動かして実行時間は無制限です。Skipbox のジョブは GitHub の分数を使わないので、GitHub の予算でループが止まることはありません。
| プラン | マシン | 月額 |
|---|---|---|
| S | 4 vCPU・メモリ 16 GB | 6,000 円 |
| M | 8 vCPU・メモリ 16 GB | 12,000 円 |
| L | 16 vCPU・メモリ 32 GB | 23,000 円 |
同時に動くシャードの数は、プランの vCPU の合計で決まります。runs-on: skipbox のシャード 4つなら、S を 4つか L を 1つで同時に動きます。あふれたシャードは順番を待ちます。
準備をくり返さない
プランごとにアカウント専用のマシンがつき、ジョブのあとも残ります。~/.cache/ms-playwright のブラウザー、npm のキャッシュ、アプリやサービスの Docker のイメージが、次の実行の前からディスクにあります。
毎回きれいに始まる
ジョブが終わるたびに、ランナーの認証情報、プロセスとすべてのコンテナを消し、ヘルスチェックを走らせます。通らないマシンは、まっさらなイメージから作り直します。2026年11月13日からは、チェックアウトしたコードと Cargo のビルド結果(target/)を専用のマシンに残し、次のジョブで使います。「毎回クリーン」なら、ジョブごとに新しいマシンで動きます。
移行は runs-on を 1行書き換えるだけ
name: E2E
on:
pull_request:
schedule:
- cron: "*/15 * * * *"
concurrency:
group: e2e-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
e2e:
runs-on: skipbox # ubuntu-latest から書き換える
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: lts/*
- run: npm ci
- run: npx playwright install --with-deps
- run: npx playwright test
- Skipbox に GitHub でログインする
- Skipbox の GitHub アプリを入れて、使うリポジトリを選ぶ
runs-onを書き換えて push する
セキュリティ
- マシンはアカウントごとの専用です。ほかの会社のジョブと同じマシンで動くことはありません。
- ジョブが終わるたびに、ランナーの認証情報、プロセスとコンテナをすべて消します。2026年11月13日からは、チェックアウトしたコードと Cargo のビルド結果(
target/)を専用のマシンに残し、次のジョブで使います。「毎回クリーン」なら、ジョブごとに新しいマシンで動きます。 - 書き込み権限のない人のコード(フォークからのプルリクエストなど)は、使い捨ての新しいマシンで動きます。
くわしくはジョブの分離のしくみにあります。
まず 1日回してみる
カード不要で、7日間かジョブの合計 3,000分まで無料です。トライアルでは runs-on: skipbox のジョブが 1つずつ動きます。E2E のジョブを移してスケジュールをオンにし、定額で回る 1日分の実行を見てください。
よくある質問
E2E テストは push のたびに走らせるべき?
コミットの多くをエージェントが書くなら、走らせるべきです。単体テストは変わった関数を確かめ、E2E テストはログイン・決済・そのまわりの画面がまだ一緒に動くかを確かめます。Skipbox のような定額のランナーなら、push のたびとスケジュールで回しても、夜に 1回回すのと請求は同じです。
GitHub Actions のスケジュールはどれくらいの間隔で動かせる?
最短で 5分ごとです。スケジュール実行は既定のブランチの最新のコミットで動き、GitHub が混んでいるときは遅れて始まることがあります。よく使われるのは 15分ごとで、1日 96回です。Skipbox なら 15分ごとでも 5分ごとでも請求は変わりません。
E2E テストを一日中回すと、GitHub Actions ではいくらかかる?
4 vCPU のランナー 1つを 1か月動かし続けると、GitHub の 4コアのランナーで 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。です(GitHub Team の無料分を引いたあと)。Skipbox のプラン S は 4 vCPU のジョブを 1つずつ一日中動かして月 6,000 円の定額なので、毎月 参考値:2026年11月10日の為替レート・1ドル=158.22円。米ドルの料金を、このレートで円に換算した概算です。安くなります。
Skipbox で Playwright のシャードを同時に動かすには?
同時に動くジョブの数は、持っているプランの vCPU の合計で決まります。4 vCPU の runs-on: skipbox のシャード 4つは、S を 4つか L を 1つで同時に動きます。足りない分のシャードは順番を待ち、前のジョブが終わりしだい始まります。
不安定な(flaky な)E2E テストを見つけるには?
CI でリトライをオンにします。Playwright は、落ちてからリトライで通ったテストを passed とも failed とも分けて flaky とし、レポートに並べます。ループで回していれば、同じ不安定なテストが一日に何度も出てくるので、スプリントを待たずに一日で見つかります。
2026年11月11日 更新