I left Github a while ago and have been relying on simple pre-push scripts in my workflow, but would like to be able to test PRs from others without putting my machine at risk. Besides codeberg and radicle (neither of which have reliable CI), I also have a build machine, where I could run CI jobs, however it is important that the CI jobs can also run locally so that external people do not require access to the build machine.
Is there a CI that can do those things (run locally and remotely)?
I use forjero with forgero runners.
Basicly 100% compatible with GitHub actions and all locally run via podman.
Strong recommend. It’s all designed to work together and everything just works.
Isn’t Forgejo runner still in alpha though? How stable is it?
I can’t speak for general use. But use it to:
- Build Rust artifacts
- Rebuild static sites, upload them to a bucket, then clear the CDN cache.
It works perfectly for me and I have not run into issues. But it might be bad for other people. I just know it works well for me.
Great timing. I’m interested in this as well. I am currently attempting an ansible setup that runs podman containers in a couple lxc incus containers (developnent setup to mimic production) with forgejo and woodpecker on the other lxc container but it has been a battle.
Currently unable to figure out why the ‘general.community’ modules won’t get recognized by ansible.
I set up Forgejo with Woodpecker CI some days ago and it’s been great so far
Are you able to run woodpecker locally from the repository? As in can
woodpecker run
in the checked out repository run the CI jobs?It also has a CLI tool that I know can re-run your pipeline locally for debugging, so just running it normally should also be possible. Haven’t used either so far though.
I can’t find documentation about that unfortunately 🧐 There’s
woodpecker-cli exec
but after testing that on the example pipeline, it does nothing even with verbose logging.Do you have a functional example somewhere?
I remember seeing dagger trying to solve exactly this problem around 3 years ago, but it was still in alpha at that time. Not sure how good it is now.
After perusing the docs, this looks more like it. Thank you. I’ll just have to explore how it can be combined with projects that use nix and those that don’t. My biggest issue with CIs has always been caching, but as the saying goes “there are 2 hard problems in computer science…”
You may try out https://github.com/melezhik/sparky which is a local / remote task runner with nice front end and scripts could be written on many languages
Earthly!