I ended up prototyping self hosted https://woodpecker-ci.org/ on my k8s cluster. Ended up taking just a few hours of AI time (Claude Code). Woodpecker has a helm chart, can connect to Github and post status checks to commits.
Open to feedback or tips and tricks on this, but so far it's looking promising. Curious how other folks experience has been.
"1. We’re postponing the announced billing change for self-hosted GitHub Actions to take time to re-evaluate our approach.
"2. We are continuing to reduce hosted-runners prices by up to 39% on January 1, 2026.
"We have real costs in running the Actions control plane. We are also making investments into self-hosted runners so they work at scale in customer environments, particularly for complex enterprise scenarios. While this context matters, we missed the mark with this change by not including more of you in our planning.
"We need to improve GitHub Actions. We’re taking more time to meet and listen closely to developers, customers, and partners to start. We’ve also opened a discussion to collect more direct feedback and will use that feedback to inform the GitHub Actions roadmap. We’re working hard to earn your trust through consistent delivery across GitHub Actions and the entire platform."
For the record, planning to do something later than originally planned is the definition of "postpone." Nevertheless, coupling to any vendor is a form of technical debt, and it's always a good idea to take stock and evaluate if it's time to start repaying it.
It does not seem unreasonable that if the locally-run actions are using some GitHub resources (for logging, maintenance,etc) then there's a cost to that.
What a reasonable charge is, is open to discussion.
Classic SaaS platform problem. If you give it away, it will cost you money - and eventually someone will "arbitrage" it at sufficient scale to matter. If you charge for it, your billing becomes a nightmare collection of counters and rates, impossible for users to estimate and understand.
per-minute is really just a way to express the cost in a human friendly name. Doing per-hour, per-second, per-day could all result in the same total value just at a different number. If anything per-minute is better than per-hour as you won't be charge for minutes you don't use.
But why not make it "per GB Logs ingested" or "per triggered job" (or both)? These should reflect the points where GitHub also has costs - but not per minute.
Probably caused by enterprises going after them, my normally dead company-wide global devops chat had a few hundred messages yesterday because of this.
> Although we gave away 11.5 billion build minutes (~$184 million) to support OSS last year
Interesting, I was trying to estimate how much they spent on free actions per year. I thought it would be around $100m. This is the first actual number I've seen.
I expect the $184 million figure is the sale price rather than the actual cost to GitHub, and given that competitors offer the same service for 3-10x less it's probably more like $80m overall I'd guess.
Still a pretty huge amount of money that I don't think any competitors can really hope to match.
Yeah, could we please stop treating twitter as the canonical source of company communications? There is always a blog post or in this case, a github discussion.
Unrelated to Actions. Jared Palmer, the author of this Tweet, has done well for himself. I remember him as the author of Turborepo which Vercel gobbled up a few years ago.
I ended up prototyping self hosted https://woodpecker-ci.org/ on my k8s cluster. Ended up taking just a few hours of AI time (Claude Code). Woodpecker has a helm chart, can connect to Github and post status checks to commits.
Open to feedback or tips and tricks on this, but so far it's looking promising. Curious how other folks experience has been.
This is the official message: https://x.com/github/status/2001372894882918548
"We’ve read your posts and heard your feedback.
"1. We’re postponing the announced billing change for self-hosted GitHub Actions to take time to re-evaluate our approach.
"2. We are continuing to reduce hosted-runners prices by up to 39% on January 1, 2026.
"We have real costs in running the Actions control plane. We are also making investments into self-hosted runners so they work at scale in customer environments, particularly for complex enterprise scenarios. While this context matters, we missed the mark with this change by not including more of you in our planning.
"We need to improve GitHub Actions. We’re taking more time to meet and listen closely to developers, customers, and partners to start. We’ve also opened a discussion to collect more direct feedback and will use that feedback to inform the GitHub Actions roadmap. We’re working hard to earn your trust through consistent delivery across GitHub Actions and the entire platform."
"Postponing" means they will just do it later.
The writing is on the wall. Up to you if you wish to continue using and trusting Microsoft.
It does not seem unreasonable that if the locally-run actions are using some GitHub resources (for logging, maintenance,etc) then there's a cost to that. What a reasonable charge is, is open to discussion.
Classic SaaS platform problem. If you give it away, it will cost you money - and eventually someone will "arbitrage" it at sufficient scale to matter. If you charge for it, your billing becomes a nightmare collection of counters and rates, impossible for users to estimate and understand.
It sure as hell isn't a per-minute cost
per-minute is really just a way to express the cost in a human friendly name. Doing per-hour, per-second, per-day could all result in the same total value just at a different number. If anything per-minute is better than per-hour as you won't be charge for minutes you don't use.
But why not make it "per GB Logs ingested" or "per triggered job" (or both)? These should reflect the points where GitHub also has costs - but not per minute.
the issue is it's per-$DURATION
it could be per-workflow, regardless of duration
Then why we pay a fix price for everything, size of repositories, webhooks etc, except the self hosted actions.
Probably caused by enterprises going after them, my normally dead company-wide global devops chat had a few hundred messages yesterday because of this.
Oh good I have a little bit more time to migrate away.
Seems like a year with record downtime for them is not a great time to announce a price increase...
> Although we gave away 11.5 billion build minutes (~$184 million) to support OSS last year
Interesting, I was trying to estimate how much they spent on free actions per year. I thought it would be around $100m. This is the first actual number I've seen.
I expect the $184 million figure is the sale price rather than the actual cost to GitHub, and given that competitors offer the same service for 3-10x less it's probably more like $80m overall I'd guess.
Still a pretty huge amount of money that I don't think any competitors can really hope to match.
I wonder how much of that $80 million is garbage code like safe_sleep.sh
Maybe update link to the post:
Updates to GitHub Actions pricing https://github.com/orgs/community/discussions/182186
Yeah, could we please stop treating twitter as the canonical source of company communications? There is always a blog post or in this case, a github discussion.
That update is from an anonymous "Admin". The X link is directly from the (presumed?) head of GitHub.
They've also updated the original resource page but a new url serves our purposes better https://resources.github.com/actions/2026-pricing-changes-fo...
Hm, still too late, and still leaving.
Maybe I don't understand something, but self-hosted GitHub Actions cost more resources than GitHub Actions hosted with them?
There might be some creative uses of GitHub Actions, it seemed that getting users into the platform was valuable.
Related:
initial development and reactions:
Pricing Changes for GitHub Actions
https://news.ycombinator.com/item?id=46291156
Unrelated to Actions. Jared Palmer, the author of this Tweet, has done well for himself. I remember him as the author of Turborepo which Vercel gobbled up a few years ago.
https://jaredpalmer.com/about