日本時間の今夜、10月5日23時から翌朝9時まで、macos-14 系のラベルで動く GitHub Actions のジョブは失敗する。GitHub が2026年10月1日の changelog で告知した、macOS 14 runner image の廃止に向けた計画的なブラウンアウトだ。11月2日の廃止までに同じ長さの停止が計8回入る。runs-on の移行が必要だが、macos-14-large は x64、macos-14 と macos-14-xlarge は arm64 なので、今のアーキテクチャを確認してから後継ラベルを選ぶ必要がある。
廃止の対象は macos-14、macos-14-large、macos-14-xlarge の3ラベルだ。macos-latest を指定しているジョブは、告知の上ではすでに macos-26 を指しているので、今回の対象には入っていない。
止まるのは毎回、日本時間の23時から翌朝9時
告知の時刻はすべて UTC で書かれている。日本時間に直すと、どの回も「当日23時から翌日9時まで」の10時間になる。
| 回 | UTC | 日本時間(JST) |
|---|
| 1 | 10月5日14時〜6日0時 | 10月5日23時〜6日9時 |
| 2 | 10月12日14時〜13日0時 | 10月12日23時〜13日9時 |
| 3 | 10月16日14時〜17日0時 | 10月16日23時〜17日9時 |
| 4 | 10月19日14時〜20日0時 | 10月19日23時〜20日9時 |
| 5 | 10月23日14時〜24日0時 | 10月23日23時〜24日9時 |
| 6 | 10月26日14時〜27日0時 | 10月26日23時〜27日9時 |
| 7 | 10月29日14時〜30日0時 | 10月29日23時〜30日9時 |
| 8 | 10月30日14時〜31日0時 | 10月30日23時〜31日9時 |
出典:GitHub Changelog「GitHub Actions: macOS 14 runner image retirement」(2026年10月1日)。日本時間は UTC に9時間を足して換算
日本の日中とは重ならない。気づくきっかけは、夜間に定期実行しているビルドや、時差のある拠点からの push で走ったジョブになる可能性がある。10月29日と30日は2日続けて入るので、29日の夜から31日の朝まで、30日の日中14時間を除いて止まる。
ブラウンアウトの外でも、待ち時間は延びうる
時間帯を避ければ済む話でもない。告知は、廃止までの期間に GitHub が macOS 14 runner の capacity を減らす可能性があり、これらのラベルを使い続けるジョブはキュー待ちが長くなりうると書いている。どの時期にどれだけ減らすかは書かれていない。
失敗はしないが遅い、という状態が予告なしに来うる。リリース前のビルドを macos-14 に載せたままにしておく理由は薄い。
移行先は x64 と arm64 を分けて選ぶ
廃止告知の「What you need to do」が挙げる4ラベルは arm64 だ。一方、同じ告知から案内される runner-images の Available Images では、macos-14-large は x64、macos-14 と macos-14-xlarge は arm64 と分かれている。
| 現在のラベル | アーキテクチャ | 同じアーキテクチャを維持する候補 |
|---|
macos-14 | arm64 | macos-15、macos-latest(macos-26) |
macos-14-xlarge | arm64 | macos-15-xlarge、macos-latest-xlarge(macos-26-xlarge) |
macos-14-large | x64 | macos-15-large / macos-15-intel、または macos-latest-large / macos-26-large / macos-26-intel |
出典:GitHub Changelog「GitHub Actions: macOS 14 runner image retirement」(2026年10月1日)および actions/runner-images「Available Images」(2026年10月5日確認)
macos-14-large から告知掲載の arm64 ラベルへ移すと、OS だけでなく CPU アーキテクチャも変わる。x64 前提の依存関係や Action があるジョブは、まず x64 の後継ラベルで移行するか、arm64 化を別の変更としてテストするほうが切り分けやすい。
書き換えの順番
例えば arm64 の macos-14 から macos-15 へ移すなら、変更そのものは runs-on の値を差し替えるだけだ。
jobs:
build:
runs-on: macos-15 # was: macos-14
漏れやすいのは、matrix の値や再利用ワークフローの入力としてラベルを渡している箇所だ。順番としては次のように進めると取りこぼしが少ない。
- リポジトリ全体で
macos-14 を検索し、-large と -xlarge も含めて洗い出す
- runner-images の一覧で、現在のラベルが x64 か arm64 か確認する
- 上の表から同じアーキテクチャの候補を選ぶ。アーキテクチャを変えるなら、その変更として別にテストする
- PR 上で一度ジョブを走らせ、ビルドとテストが通るかを見る
- 次のブラウンアウト(日本時間の23時)より前にマージする
macos-latest は告知時点では macos-26 を指す。Xcode などの入っているツールが macOS 14 と 15、26 でどう違うかは、告知が案内する runner images リポジトリで確認することになる。ビルドがツールのバージョンに敏感なプロジェクトほど、手順 3 を省かないほうがいい。