Comment by Bnjoroge

16 hours ago

Lots of fun projects being listed. I'm working on Preloop(https://preloop.dev), a way to run your unmodified Github Actions locally or self-hosted in isolated cross-platform microvms(uses smolvm which uses libkrun vmm).I got frustrated with Github Actions reliability and inability to run or test my workflows locally so i re-wrote the runner and reverse-engineered the control plane so it follows the exact runner protocol the offficial runner does. Each job runs in a microvm that boots in 400ms from a packed image. Also supports a way to pause on every failure so you or your agent can immediately shell at that point, fix and retry(in a new environment) to verify. Also supports the full DAP protocol so you can interactively step/forward/investigate context at each step/job.

Try it out: https://github.com/preloopdev/preloop

I appreciate how cool the website looks but its not very readable friendly :(

Will be nice to have a minimal documentation site tho!

That is an amazing idea. I can imagine this getting popular. It could be used for faster local dev loops and porting GHA to other servers. I imagine for data/compute residency, cost, performance, vm types etc.

  • Thanks! I'm glad it resonates. Still pretty beta, but I'm hoping this can be a good alternative when Github goes down, which unfortunately has been a bit too often, with as minimal of a lift from the user side. And of course, making it easier for agents to fully drive ci.

a bold attempt, how does it compare with https://github.com/nektos/act which has been the de-jure project in this space? Act has never been in my opinion super great, but it's also been several years since I've checked in to revisit the project.

  • Thanks! Here's a more detailed comparison: https://github.com/preloopdev/preloop/blob/main/docs/preloop.... The TLDR is act(much like Forgejo/Gitea) try to behaviorally emulate how your workflows run in docker containers. Preloop uses the exact same protocol the official runner does and runs each job in microvms. I try to match not only te request/response bodies, but down to the job/step log/annotations/conclusions level, so you could essentially use the official runner against preloop, and it would work as it would communicating with Github. Preloop is also designed to be agent-native from the ground up so an agent can drive the entire CI in real-time and debug like we do. Forgejo has the closest compatibility among the three in practice, and if you are fully off Github, I think it's a good enough choice. Here's a more detailed description of some things we do to ensure compatibility: https://github.com/preloopdev/preloop/blob/main/docs/conform...