---
# System prepended metadata

title: The Great CI Redesign
tags: [CI]

---

> [!Note]
> This is still a work-in-progress! Ask BD103 on Discord if you have any questions :)

Developers often relate code to spaghetti: a tangled, delicious mess. I would argue that code is more like a garden: it grows over time but is often in need of maintenance.[^1]

Different programming languages and frameworks are like different types of plants and soil in a garden. For example, JavaScript is very similar to a dandelion. Both are easy to grow, but both arguably spread far farther than they rightly should[^2].

If JavaScript is a dandelion, then YAML is that one really annoying weed that magically teleports to all gardens within a 100 mile[^3] radius. You know the one.

But I'm getting off-track. Today I'm going to be talking about GitHub Actions, specifically for the Bevy game engine's CI system. We'll be dealing in YAML and (hopefully) a bit of Rust, all in hopes of designing an improved system that's more efficient, maintainable, and understandable.

[^1]: Also I'm personally against eating code, as that cannot be healthy, so the spaghetti analogy doesn't work well for me.
[^2]: I've seen it used both for configuring printers and writing Minecraft mods. While I'm fascinated by how much it's been adopted, I don't believe it's the correct choice for most fields outside of web development.
[^3]: Which is 160.9344 kilometers for all the people that use a sensible unit of measurement.
