this post was submitted on 15 Apr 2025
23 points (96.0% liked)

Programming

19957 readers
238 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

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)?

Anti Commercial-AI license

you are viewing a single comment's thread
view the rest of the comments
[–] sorter_plainview 3 points 2 weeks ago (2 children)

Woodpecker with Ansible. Woodpecker will give container environment and using Ansible will reduce dependency on the CI tool.

Woodpecker has a alpine linux based container for Ansible. It will take some time to setup, but will make the life much easier.

[–] PokerChips@programming.dev 1 points 2 weeks ago

I'm attempting this setup as well. It's been a struggle but i am also new to a lot of this.

[–] onlinepersona@programming.dev 1 points 2 weeks ago (1 children)

Why ansible? I'm not sure how that fits in. Does that make running it locally easier? An example of working setup that I can checkout and run would be useful.

Anti Commercial-AI license

[–] sorter_plainview 2 points 2 weeks ago* (last edited 2 weeks ago)

As I mentioned it is mainly to reduce dependency on CI tool. You may have to shift the tool in the future and if you use a lot of commands specific to the CI tool, that is going to be a nightmare.

Ansible is agent less and only needs SSH access. You can SSH into your local system, from the same local system. Need to add few entries in your SSH config and known_hosts. Essentially everything in Ansible are shell commands. So you are not really that much locked into Ansible.

On the question,

Does that make running it locally easier?

If you mean making it easier compared to remote, on the surface level, the answer is 'it depends'. You are treating the local as a remote Ansible can SSH into. Which means you can use the same Ansible playbook for both local and remote testing. It becomes easier because you get to run things locally by SSH into the same machine.

To do that, you may add a local only git branch which will act as the trigger for running it locally. Then you can test it by pulling / merging into that branch, and using the same Ansible playbook to run tests locally.

Bonus point is you can also create a working but basic CD system with Ansible.