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

  • drspod@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    2 hours ago

    would like to be able to test PRs from others without putting my machine at risk

    I know what you mean, but do you not read the diff? Are you working on codebases that are so obfuscated that you can’t spot a malicious command?

      • mholiv@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        4 hours ago

        I can’t speak for general use. But use it to:

        1. Build Rust artifacts
        2. 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.

    • brian@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      4 hours ago

      gitea has had some organizational problems so a lot of people have been using forgejo instead, which is just a community fork of gitea plus some more features

  • Björn Lindström@social.sdfeu.org
    link
    fedilink
    arrow-up
    13
    arrow-down
    1
    ·
    10 hours ago

    @onlinepersona don’t do it. Create makefiles or whatever that runs the build as a series of Podman/Docker commands or whatever, then just put as little CI config as possible around it. You’ll thank me when you need to switch CI system.

    • TrumpetX@programming.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 hour ago

      I can’t upvote this comment enough. I grow so angry at Gitlab ci and GitHub actions. Even Jenkins got in on the junk.

      Just use normal build tools and you can use whatever cruft you want around it with just a few lines instead of monster ci file that goes out of date next year.

  • PokerChips@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    8 hours ago

    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.

  • footfaults@lemmygrad.ml
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    10 hours ago

    Put as much of your testing in shell scripts, or even better, Ansible playbooks, so that you can run them locally. That way your CI system just does ansible-playbook

    There’s a very good Ansible collection for podman, so you can orchestrate the unit tests to run inside a container for full isolation

  • sorter_plainview@lemmy.today
    link
    fedilink
    arrow-up
    3
    ·
    9 hours ago

    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.

    • onlinepersona@programming.devOP
      link
      fedilink
      arrow-up
      0
      ·
      9 hours ago

      Are you able to run woodpecker locally from the repository? As in can woodpecker run in the checked out repository run the CI jobs?

      • dave@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        4 hours ago

        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.