GitHub Actions is great when it works out of the box, but the process of setting up these plugins and understanding how they work in dozens of nonsense JavaScript is pretty arcane to me, so every time I have to do something unusual I either give up or waste a very long time on it. I don't understand why the build environments and so on can't be set with bash scripts or even the Dockerfiles that everybody loves.
Discussion
This is one of the things I love about Earthly, the syntax is essentially dockerfiles with a bit of Make mixed in so my entire ci config becomes just running a earthly target. (something I can also run locally)
I tried that, it looked nice, but I hit a problem and gave up entirely. I should try again.
But where exactly do you use it and for what specifically?
Here's an example of a simple one I did that runs the tests and builds and pushes a docker image. My real-world configs run all the steps and build all the images in the same file.
https://github.com/duck1123/me.untethr.nostr-relay/blob/main/Earthfile
Circleci config https://github.com/duck1123/me.untethr.nostr-relay/blob/main/.circleci/config.yml