A build server. Lightweight, extensible, good.
Click through to the repository for the code, getting started guide, and more documentation. See the snippets below for the latest activities.
A Wheel Reinvention Jam 2023 project. As is tradition I've got some words to say about how the jam went.
When it comes to the content, I came prepared. I've had thoughts on how one would create a build server for more than two years and have discussed some of these on the Discord with various people. Some of the more important payloads and a list of possible URL patterns I already had written down. So the goal was already succinctly fixed from the first hour on.
I'm happy to report that the design of the system seems to hold up to actually implementing it. Attaching jobs to entities as a way of organizing the entire thing without pipelines works well. Fun fact: Entities actually weren't named until a few days ago but it is one of these catch-all terms that can just mean whatever, so it's okay. With my tests I did not miss pipelines but it's a significant shift of responsibilities onto individual jobs, especially the initial job. Of course no one has thrown a huge CI workflow at Aura but I'm confident that it would be able to handle it. Whether DevOps engineers that are up to their neck in CI pipelines can actually rethink the entire system enough to see advantages of Aura (and the disadvantages of pipelines) is still up in the air.
How to best handle collections of entities was actually the hardest thing, I wasn't happy with the first way I tried and then spend a second half-day doing it again but properly. Now that I'm writing these lines it occurs to me that collections still aren't supported completely since you should be able to put an entity into collections when submitting a job (which may create that entity if it doesn't exist yet) but the relevant fields in the JSON only exist in my documents and not in the code. Whoops. No more time to fix that now, I've noted it down, though.
I've released version 0.1.0 at the end of the jam. If you don't need much from a build server, it might already fit your needs. If not, please do play with it and let me know what you're still missing.