-
Notifications
You must be signed in to change notification settings - Fork 570
Proposal: Move all Circle CI configuration to run on GitHub Actions instead #1214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I agree with the general sentiment. I think the only feature github actions doesn't support (and why I didn't actively attempt to move off circleci so far) is automated test splitting. CircleCI can use test timing information from previous runs to evenly distribute them into 4 parallel shards, which we use to run standard library tests. I'm not sure what's the best way to substitute this on GHA would be. Other than that, a few potential considerations come to mind:
|
Good question. I don't know the answer.
Also don't know. |
A large amount of this proposal has been taken care of by #1317 However not all configurations have been moved over to GitHub Actions. The GopherJS Tests job is broken into 2 shards ("crypto" and "non-crypto") to provide a simplistic balancing of tests. That job could use a more sophisticated balancing method similar to the setup in CircleCI. The CircleCI configuration used the timings from a prior CI run to break up tests to evenly distribute them based on duration. Something like go-test-split-action may be able to provide a similar balancing. The goal would be to split GopherJS Tests job into 4 or more (staying within the limits for a free CI of a public repo) shards that take about the same amount of time to run. |
#1327 made the tests complete quicker, so the non-crypto shard passes in 10m, and crypto under 5m. I think this is good enough for the time being and we can reconsider test splitting if the run time starts creeping back up again. Thanks @grantnelson-wf! |
Background: When the GopherJS project began, GitHub Actions didn't exist, so it was appropriate to select a third-party tool. CircleCI was selected, and it has served us well.
In the years since that decision was made, GitHub Actions has been released, and matured significantly. In September of 2021, we began using GitHub Actions for the task of reporting build size on PRs. Then more recently, I added another GitHub Action to run
golangci-lint
, which was approved and merged without any discussion about GHA vs CircleCI.This means that as of today, we have some configuration for GitHub Actions, and some for CircleCI. This works, but isn't perfectly ideal, IMO, and it would be better to standardize on one or the other.
As I see it, the main case to be made for CircleCI is that most of our configuration at the moment lives there, so would be the smaller delta.
The main case for GitHub Actions is that it would require fewer things to maintain.
Proposal:
I don't see any particular urgency to this task, but as we occasionally have requests from would-be voluteers for tasks they could help with, this might be a good candidate. So I bring this proposal forward for discussion.
The text was updated successfully, but these errors were encountered: