GitHub postponing the announced billing change for self-hosted GitHub Actions
Posted by coloneltcb 2 days ago
Comments
Comment by codeflo 1 day ago
This fails for several reasons that someone who actually uses the product might have intuited:
(a) For some use-cases, you can't switch to GitHub's runners. For us, it's a no-go for anything that touches our infrastructure.
(b) Switching CI providers isn't hard, we had to do it twice already. Granted, most of our CI logic is in a custom build script that you can run locally, and not in the proprietary YAML file. But to be honest, I'd recommend that sort of setup for any CI provider, as you always want the ability to debug things locally.
(c) GitHub Actions doesn't get the amount of love you'd expect from something billed as a "premium service". In fact, it often feels quite abandoned, barely kept working. Who knows what they're brewing internally, but they didn't coordinate this with a major feature announcement, and didn't rush to announce anything now that they got backlash, which leads me to believe they don't have anything major planned.
(d) Paying someone -- by the minute, no less -- to use my own infrastructure feels strange and greedy. GitHub has always had per-user pricing, which feels fair and predictable. If for some reason they need more money, they can always increase that price. The fact that they didn't do that leads me to believe this wasn't about cost per se. Hence the KPI theory I mentioned above: this wasn't well-coordinated with any bigger strategy.
Comment by benterix 1 day ago
I believe this has been a CI/CD best practice for over a decade. Even in venerable Jenkins, this is one of the core principles when designing pipelines[0]: don't give in to the temptation to do fancy Groovy stuff, just use simple shell commands in steps, and you will be grateful to yourself several times years later.
[0] https://www.jenkins.io/doc/book/pipeline/pipeline-best-pract...
Comment by freedomben 1 day ago
Comment by markus_zhang 1 day ago
Comment by baobun 5 hours ago
Comment by g947o 1 day ago
Comment by altmanaltman 1 day ago
Comment by dirkc 1 day ago
Comment by bilekas 2 days ago
I get the feeling they got the feedback that their runners are not as indispensable to developers as they thought and realized they would lose a significant amount of users. Now if only they would listen to the feedback about windows 11 and their forced copilot we might be onto something.
Comment by embedding-shape 2 days ago
Maybe half of all clients I work with use GitHub Actions for CI (the rest basically all use Jenkins), most of those using Actions use self-hosted runners for performance and security reasons, almost all of them reached out to me asking how difficult it would be to move away from GitHub Actions yet continue using GitHub.
Do you think these companies now suddenly stop wanting to move away from GitHub Actions because Microsoft suddenly changed their mind? I don't think so, probably less priority, but it will happen, because now the cat is out of the bag.
If they'd just do user research before announcing changes and not use announcements as "testing the waters", I'm sure they'd see a lot less churn. But I guess some number counting team somewhere in Microsoft figured out they'd make more money by charging people to run software on their own hardware, so maybe I'm just dreaming.
Comment by Xylakant 2 days ago
So moving away from GHA will not make self-hosted runners free, they’ll move into a different pricing structure that may or may not be beneficial.
And I think charging for self-hosted runners is actually fine. They’re not free for the provider either - log aggregation, caching of artifacts, runner scheduling, implementing the runner software etc are non-trivial problems for any larger CI system.
So I’m actually fine with the proposed change since it also gives me the power as a customer to say “hey, I’m paying for this, fix it.”
Comment by crote 1 day ago
Charging for self-hosted runners is indeed not a huge deal, and I bet they wouldn't have gotten the same kind of backlash if they charged for it via a per-seat, per-run, per-gigabyte, or per-log-line fee. And if GHA hadn't been so poorly maintained...
Comment by Xylakant 1 day ago
In my observation the critisicm was strongly dominated by outrage over the actual fact.
Comment by hobofan 1 day ago
I suspect that they weren't looking to make money off of those charges, but rather use that as a forcing function to push more usage of their managed runner (which are higher margin) which didn't work out. Rather than everyone saying "damn that makes alternatives financially unattactive", a good chunk of the feedback was "sure I'll pay those charges as long as I don't have to use the shitty managed runners".
Comment by flowerthoughts 1 day ago
But also, Circle CI would be a known cost change. Right now, the only thing you know is that GitHub wants to start charging money. You have no idea what new pricing model they come up with.
Comment by Xylakant 1 day ago
Comment by ClikeX 1 day ago
Comment by chrisandchris 1 day ago
Comment by misnome 1 day ago
Gitlab has proven in the past perfectly happy to hike prices above GitHub, after attracting enough switchers.
Comment by Xylakant 1 day ago
Comment by joshstrange 1 day ago
I’m paying for GitHub Action now and there is zero recourse (other than leaving). Giving them money doesn’t change anything.
I’d be more willing to pay if GH Actions wasn’t so flakey and frustrating (for hosted or self-hosted runners, I use both). At least self-hosted runners are way cheaper _and_ have better performance.
Comment by Xylakant 1 day ago
This is indeed a reason I do consider leaving GHA. The underinvestment into this part of the product shows. But they also did announce quite some investment into new and (for us relevant) features alongside the pricing change, so I'll have a look at how this changes with some sorely needed work on the product.
Comment by numbsafari 1 day ago
You might as well say that we should be paying per PR and Issue because, well, that part can’t just be free, you know?
Comment by Xylakant 1 day ago
If you upgrade the plan, you get more minutes for free - which can be consumed by the cost for free runners. They haven't specified at which rate a self-hosted runner consumes the free minutes, but at least for us, the change will largely consume free minutes.
> You might as well say that we should be paying per PR and Issue because, well, that part can’t just be free, you know?
You're misrepresenting what I said. I said, I'm fine with this for these reasons. It's a statement about me, not about what you should do nor what you should consider fine.
I pay (quite a bit) for GH because I do receive a service that's worth it, at least for now. And I'd rather see that GHA is something that makes them money than become something that is second-rate and lingers, just as it did before they made this announcement.
Comment by 9cb14c1ec0 1 day ago
Comment by markus_zhang 1 day ago
The idea nowadays is iterate fast and break things (as long as it’s not your wallet or your leg).
Comment by anothernewdude 2 days ago
Comment by thomasnno 2 days ago
Comment by embedding-shape 2 days ago
Personally, for smaller scale projects that still require collaboration over the web, Gitea/Forgejo + Woodpecker CI has been a really simple, lightweight and easy to maintain solution.
Comment by ascendantlogic 1 day ago
Comment by germandiago 2 days ago
Comment by embedding-shape 2 days ago
I guess I'm mostly still with Woodpecker because of having used it for years already, don't think there is anything major missing with either approaches, but was a while ago I looked deeper into it, maybe someone else here knows more (recent) details.
Comment by grub5000 1 day ago
You can just uninstall Copilot? It’s nowhere on my Surface Laptop 7 with W11.
Comment by bilekas 1 day ago
> https://www.tomshardware.com/service-providers/tv-providers/...
So it's not a stretch to assume they will continue to force it in their OS.
Comment by evilduck 1 day ago
Comment by newdee 1 day ago
Comment by nerdjon 1 day ago
Not fully sure what I will do regarding any open source repo's yet, but at least anything private I am already in the process of moving away.
This was something I already wanted to do for privacy concerns (especially possibility using private repo's to train AI) so this was just the push I needed.
Comment by klaussilveira 1 day ago
Comment by p_j_w 1 day ago
I think they'll take the opposite lesson. Copilot hasn’t lost them many users because Windows users are locked into the ecosystem and unable to leave. They will try to get GitHub into a position similar to that and then try this shit again.
Comment by amluto 1 day ago
The stack would be:
Postgres, as a job queue and job status tracker. The entire control plane state lives in here. Even in a fairly large org, the transaction rate would be very, very low.
An ingestion agent. Monitors the repository for pushes and PRs.
A job agent. This runs a in a sandbox and gets the inputs from GitHub and runs what is effectively a workflow step. It doesn’t get any secrets — everything it wants to do is either accomplished in the form of JSON output, blob output, or an org-specific API for doing things that don’t fit the JSON output model.
A thing to handle results. This is a simple service, connected to the database, that consumes the JSON job results and does whatever is needed (which would mostly consist of commenting on PRs or updating a CI status dashboard). For CD workflows, the build artifacts would be sent to whatever registry they go to.
A configuration system, which would be some files somewhere, maybe in a git repository that is not the repository that CI is being done on. (GitHub’s model of Actions config being in-band in the repository is IMO entirely wrong.)
And that’s about it.
I’m not suggesting that I could duplicate the GitHub Actions in a weekend. But I wouldn’t want to. This would be single-tenant, and it would support exactly the features that the organization actually uses. Heck, even par-for-the-course things like SSO aren’t needed because the entire system would have no users per se :)
Comment by bilekas 1 day ago
I guess it's the AI driven approach. These things, critical infra, are always done better with a few eyes in it.. introducing irresponsible ideas of "I'll just remake it with Claude without knowing the underlying infra" can hit a few nerves, also add a few lower level bugs, exploits etc.
I don't think it's fair for the downvoted but I think it's worth discussing where we draw the line.
Edit: I think AI is a tool not a replacement.
Comment by amluto 1 day ago
My actual point is that GitHub Actions is kind of an unusual product. Many big cloud things solve what seems to be a simple problem but the actual requirements are much harder than they might appear, and replacing them well wouldn’t be very complex. But IMO GitHub Actions in particular is a bunch of complexity that does not actually solve the problem that needs solving very well; a small bespoke solution would actually be better.
Comment by Cheer2171 1 day ago
Comment by tom-9999 2 days ago
2. Kill bad publicity with blog pretending to be understanding and taking on feedback while "pausing" the increase.
3. Implement price increase a few months later when the bad publicity wave is over, and its old news so wont generate new headlines.
Comment by Uehreka 2 days ago
Comment by beaker52 2 days ago
It’s just a question of giving you enough time to move on from anger/shock/fear to toward acceptance. It’s like magic and is used all the time.
> Nah, that doesn’t work when…
Sounds like it could be another well known stage of the process called denial. Denial is when you tell yourself that something isn’t possible which makes you feel safer, when in fact you’re already moving toward acceptance - acceptance that you’re going to leave, or pay the price.
Comment by lbreakjai 1 day ago
If you still complain in a few months then that's on you, because you've been warned.
Comment by dijit 1 day ago
It happens a lot, Atlassian being a really prominent example with their “SaaS only” change.
Comment by Vespasian 2 days ago
I fear this would be the obvious conclusion.
Comment by csomar 2 days ago
Many people will switch for that kind of money.
Comment by withinboredom 2 days ago
Comment by redrove 2 days ago
Comment by djeastm 1 day ago
Comment by estimator7292 1 day ago
Comment by linuxftw 1 day ago
Personally, I think this is all overblown anyway. Their pricing seems fair to me. Too many people are used to getting something for nothing. Most companies will just pay the new prices, because the time to develop and setup an alternative will far exceed just paying the new fees to GH (when you account for engineering cost).
Comment by otterley 2 days ago
"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."
Comment by sltr 1 day ago
$184M in profit or cost?
It's called a loss leader, not a gift, and it's a marketing and adoption tactic. They already bought the machines which cost about as much to run idle as at 100% utilization. Might as well put that idle capex and opex to use.
Or just collectively bill OSS the $184M and stop signaling virtue.
Comment by otterley 19 hours ago
Comment by denismi 2 days ago
Losing free Actions doesn't particularly bother me, and I have no issue with paying what is most likely a negligible amount, but I don't really want to have a credit card on file which could be charged some unbounded amount if somebody gets into my account. I've shut down my personal AWS for similar reasons.
Is there any way of me just loading up a one-time $20? That will probably last well into 2027, and give me the peace of mind that I can just let it run. If my account's compromised, or I misconfigure something that goes wild, I am perfectly happy to write off that amount and have my incredibly-low-stakes toy projects fail to build.
Comment by robertjpayne 1 day ago
Comment by embedding-shape 2 days ago
Comment by spockz 2 days ago
Comment by rjmunro 1 day ago
Now you still owe them the money, but haven't paid, so they tell you to pay on another card. If you refuse, they start debt collection against you and you could end up with your credit rating being affected, and maybe court cases and so on.
I want give the company an amount of money, then know that it's run out and I have to pay for more. You can set monthly limits (https://github.com/settings/billing/budgets), but if you are like me and have personal projects that you work on for a week or two a few times a year, that doesn't really work.
Comment by spockz 1 day ago
Comment by blitzar 1 day ago
Comment by hi_hi 2 days ago
Unfortunately I feel it is not in the SaaS businesses interests, who want to replicate the gym membership model where the 70% who don't use the service are supplementing the other 30% who use it frequently.
Comment by htrp 1 day ago
Comment by kevin061 2 days ago
The writing is on the wall. Up to you if you wish to continue using and trusting Microsoft.
Comment by thomascountz 2 days ago
"Postponing" means they will just do it later.
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.Comment by dvh 2 days ago
Comment by benterix 2 days ago
Comment by baobun 4 hours ago
If you rely on "Trusted Publishing" you are assisting Microsoft in making a moat for their CI platform.
Use cryptographic signatures, not implicit trust in a hosted platform.
Comment by 000ooo000 2 days ago
Comment by muixoozie 1 day ago
Comment by nijave 1 day ago
There's some cost involved there--especially if you're offering hosted runners (you need some capital to buy infra to run jobs)
There's also advantage of limiting how many companies you share your code with. If you're using GitHub, you're already trusting them with your source code so GitHub Actions doesn't require more trust or an additional entity to manage/pay
Comment by ClikeX 1 day ago
This change is a very weird one. Because the teams that are capable of setting up their own runners have the means to easily jump ship to another CI platform and skip these fees altogether.
Comment by CafeRacer 2 days ago
Comment by Kinrany 2 days ago
Comment by CafeRacer 1 day ago
Comment by franktankbank 1 day ago
(DECLARATIVE CI WHY?????)
Comment by 000ooo000 1 day ago
Comment by IshKebab 2 days ago
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.
Comment by blibble 2 days ago
Comment by AndrewDucker 2 days ago
Comment by carefulfungi 1 day ago
Comment by estimator7292 2 days ago
Comment by chippiewill 23 hours ago
- logs are generally proportional to the length of the job
- other artifacts also usually correlate to an extent
- some of the cost for Github will be for the entire time the job is active: e.g. active connections for log streaming etc. - it's largely correlated to the value the end-user gets out of it
- it's easy to bill for because they can already do billing that way on the hosted runners
- the costs are easy to predict for end-users
It's not like the rest of the Github platform is a per-user cost to run, but that's how Github charge for most features.
Comment by jborean93 2 days ago
Comment by tom1337 2 days ago
Comment by whateveracct 2 days ago
it could be per-workflow, regardless of duration
Comment by 0x073 1 day ago
Comment by greazy 2 days ago
https://github.blog/changelog/2025-12-16-coming-soon-simpler...
Comment by HelloUsername 1 day ago
Comment by techterrier 2 days ago
"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"
^ theres more in the actual tweet, but the preview that gets unfurled on discord cuts off there. That last lines a killer, poor olde microsoft
Comment by bilekas 2 days ago
Am i wrong or didn't they have a bug in the action runners that would basically cycle the CPU infinitely ?
> https://github.com/actions/runner/issues/2380
> https://github.com/actions/runner/issues/3792
Didn't they take years to fix this ? Or its unrelated ?
Comment by Narretz 2 days ago
Comment by codeflo 1 day ago
Comment by ChrisArchitect 2 days ago
Updates to GitHub Actions pricing https://github.com/orgs/community/discussions/182186
Comment by baggachipz 2 days ago
Comment by everfrustrated 2 days ago
Comment by ChrisArchitect 2 days ago
Comment by ZeWaka 2 days ago
Comment by julius-fx 2 days ago
Comment by smivan 1 day ago
Open to feedback or tips and tricks on this, but so far it's looking promising. Curious how other folks experience has been.
Comment by Shadowmist 2 days ago
Comment by j45 2 days ago
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.
Comment by 6LLvveMx2koXfwn 1 day ago
Comment by N_Lens 1 day ago
Comment by ChrisArchitect 2 days ago
initial development and reactions:
Pricing Changes for GitHub Actions
Comment by donatj 2 days ago
Charge a flat fee per Action, sure. There is a tiny cost on GitHub's part associated with the API calls for starting and stopping, but if my build takes 8 hours on a self-hosted runner there is no more cost to GitHub than it taking 10 seconds.
That's the whole point of self-hosted runners.
Maybe there was more outrage elsewhere, but I was frankly confused at the seeming lack thereof here on Hacker News.
Comment by ClikeX 1 day ago
Comment by franktankbank 1 day ago
I think they kinda fucked themselves 3 concrete ways (among the nerds which may not be a problem for them):
1) this whole thing
2) the infinite running jobs issues which called attention to how poorly managed the GHA system is
3) zig et al announcing their departure and all the positive conversation around that
Comment by brodo 1 day ago
Comment by ryandvm 1 day ago
Comment by top_sigrid 2 days ago
Comment by Daviey 2 days ago
Comment by redrove 2 days ago
Comment by duskdozer 2 days ago
Comment by KJBweb 2 days ago
Comment by arminiusreturns 1 day ago
https://www.slingacademy.com/article/git-post-receive-hook-a...
Another of my tricks is to tie in your containerization there too, system-nspawn is what I'm using at the moment, but it can apply to others.
Comment by egorfine 2 days ago
Comment by ath3nd 16 hours ago
Comment by bearjaws 1 day ago
Comment by gherkinnn 2 days ago