Skip to content
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

CI takes a very long time to run #180

Closed
mcmire opened this issue Feb 10, 2023 · 2 comments
Closed

CI takes a very long time to run #180

mcmire opened this issue Feb 10, 2023 · 2 comments

Comments

@mcmire
Copy link
Collaborator

mcmire commented Feb 10, 2023

Each job defined in the GitHub workflow file takes between 7 and 9 minutes to run. The majority of slow tests are integration tests, which run the rspec command inside of a subshell and then test the output. A while back I tried to see if I could use Zeus to speed this up. The basic concept behind Zeus is that it opens a Ruby process, preloads some code, and waits until it receives further instructions. When you want to do something, it will fork (thereby creating a clean slate in memory) and then run your code. Unfortunately Zeus has not been updated in years, so it's not a viable option. Spring offers a more approachable implementation as it's written in pure Ruby instead of Go, but is tailored for Rails and doesn't allow the same level of customization as Zeus. So we might have to write our own version of Zeus, or fork Spork, or something like that.

@mcmire
Copy link
Collaborator Author

mcmire commented Mar 26, 2023

It looks like someone has created a project called Expedite, which is a heavily modified version of Spring that supposedly works on more abstract Ruby projects. Maybe worth looking into.

@jas14
Copy link
Collaborator

jas14 commented Nov 18, 2024

Solved by #271 – with preloading and then forking instead of Zeus, the test matrix takes less than 2 minutes in CI, and the entire run against main takes less than 3 minutes.

@jas14 jas14 closed this as completed Nov 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants