GitHub Actions removals · checked
GitHub Actions deprecations, by date
6 dated changes to GitHub Actions are still ahead, from GitHub's runner-images announcements and changelog (checked 9 October 2026); the next to reach a job is macOS 14 runner image, whose next brownout is in 3 days (5, 12, 16, 19, 23, 26, 29 and 30 Oct 2026, 14:00 to 24:00 UTC). Before a runner image goes, GitHub fails every job that asks for it during brownout windows. Check your workflows now, with nothing to install: grep -rnE "macos-14|macos-14-large|macos-14-xlarge|ubuntu-latest|pull_request_target|github/codeql-action(/[a-z-]+)?@v?(3)\b|ubuntu-22\.04|ubuntu-22\.04-arm|macos-15-intel" .github finds every label, action and trigger above with a date still ahead.
$ grep -rnE "macos-14|macos-14-large|macos-14-xlarge|ubuntu-latest|pull_request_target|github/codeql-action(/[a-z-]+)?@v?(3)\b|ubuntu-22\.04|ubuntu-22\.04-arm|macos-15-intel" .github
Run it from the repository root; it needs nothing installed and sends nothing anywhere. It finds each name as written in your workflow files; a value set in another file and passed in (a matrix from JSON, a reusable workflow's input) needs a look of its own. Each page below gives the fix for one. The dates come from this data.
Ahead
| Date | What | Brownouts (UTC) | Effect |
|---|---|---|---|
| 2 Nov 2026brownouts under way | macOS 14 runner image | 5, 12, 16, 19, 23, 26, 29 and 30 Oct 2026 | Breaks a job |
| 19 Oct to 19 Nov 2026ahead | ubuntu-latest moving to Ubuntu 26.04 | none | Warns; the job still runs |
| 2 Nov 2026ahead | pull_request_target in public repositories | none | Breaks a job |
| Dec 2026ahead | CodeQL Action v3 | none | Warns; the job still runs |
| 17 Apr 2027ahead | Ubuntu 22.04 runner image | 23 and 30 Mar, 6 and 13 Apr 2027 | Breaks a job |
| Aug 2027ahead | macos-15-intel runner (x86_64) | none | Breaks a job |
Already in effect
These dates have passed, and workflows still carry them. The pages stay up for anyone migrating late.
| Date | What | Brownouts (UTC) | Effect |
|---|---|---|---|
| 23 Sep 2026in effect | Node 20 actions | none | Warns; the job still runs |
| 4 Dec 2025in effect | macOS 13 runner image | none | Breaks a job |
| 30 Jun 2025in effect | Windows Server 2019 runner image | none | Breaks a job |
| 15 Apr 2025in effect | Ubuntu 20.04 runner image | none | Breaks a job |
| 1 Mar 2025in effect | actions/cache v1 and v2, and pins below v3.4.0 or v4.2.0 | none | Breaks a job |
| 30 Jan 2025in effect | upload-artifact and download-artifact v1 to v3 | none | Breaks a job |
| 3 Dec 2024in effect | macOS 12 runner image | none | Breaks a job |
| 3 Apr 2023in effect | Ubuntu 18.04 runner image | none | Breaks a job |
| 1 Dec 2022in effect | macOS 10.15 runner image | none | Breaks a job |
| 16 Nov 2020in effect | set-env and add-path workflow commands | none | Breaks a job |
No date announced
Asked about often; GitHub has given no date. Each page says what would start one.
| Date | What | Brownouts (UTC) | Effect |
|---|---|---|---|
| no dateno date | set-output and save-state workflow commands | none | Warns; the job still runs |
| no dateno date | Windows Server 2022 runner image | none | Nothing yet |
| no dateno date | macOS 15 runner image (arm64) | none | Nothing yet |
An email before each brownout, for the repos you watch, is not built.
It would re-read your workflows every day and email you a week and a day before each brownout or removal that would hit them, with no change to your repo. agentcheck's free hourly watch covers MCP servers only today. If you would pay for this one, say so with one click. The click is counted; nothing else is sent or stored.
Counted. Thank you; nothing else was sent.What is covered
Dated removals GitHub has announced for its hosted runner labels, the runtime of JavaScript actions, the artifact and cache actions, CodeQL Action, workflow commands and the pull_request_target trigger, from GitHub's own pages; the ones already in effect that workflows still carry; and the ones GitHub has not dated. github.com only: GitHub Enterprise Server keeps its own schedule.
Not in workflow files, so no search of them finds it: since 29 September 2026, self-hosted runners below version 2.329.0 no longer run jobs on GitHub Enterprise Cloud (changelog). The whole list is at /actions/removals.json. API versions have their own list: API sunsets; so do language models: model retirements.
actions-eol is a free tool from agentcheck, which runs scheduled checks of your endpoints and alerts you when an answer changes. Dates come from GitHub's own pages, read on the day shown; github.com only, since GitHub Enterprise Server keeps its own schedule.