Remix.run Logo
adamcharnock 6 hours ago

We've been looking at Forgejo too. Do you have any experience with Forgejo Actions you can share? That is one thing we are looking at with a little trepidation.

iamkonstantin 5 hours ago | parent | next [-]

We use them in our shop. It's quite straightforward if you're already familiar with Github Actions. The Forgejo runner is tiny and you can build it even on unsupported platforms (https://code.forgejo.org/forgejo/runner) e.g. we've setup our CI to also run on Macs (by https://www.oakhost.net) for App Store related builds. It's really quite a joy :)

xrd 2 hours ago | parent [-]

Are you building MacOS apps? More specifically, are you doing code signing and notarization and stamping within CI? If so, is this written up somewhere? I really struggled with getting that working on GitLab. I did have it working, but was always searching for alternatives.

xrd 5 hours ago | parent | prev [-]

I setup actions yesterday. There are a few tiny rough edges, but it is definitely working for me. I'm using it to build my hugo blog which "sprinklylls" in a Svelte app, so it needs to have nodejs + hugo and a custom orchestrator written in Zig.

What I did:

  * used a custom docker image on my own registry domain with hugo/nodejs and my custom zig app
    * no problems
  * store artifacts 
    * required using a different artifact "uses" v3 instead of v4 (uses: actions/upload-artifact@v3)
    * An example of how there are some subtle differences between GitHub Actions, but IMHO, this is a step forward because GitLab CI YAML is totally different
    * can't browse the artifacts like I can on gitlab, only allows download of the zip. Not a big deal, but nice to verify without littering my Downloads folder.
  * Unable to use "forgejo-runner exec" which I use extensively to test whether a workflow is correct before pushing
    * Strange error: "Error: Open(/home/runner/.cache/actcache/bolt.db): timeout"
    * I think GitLab broke this feature recently as well!
  * Getting the runner to work with podman and as a service was a little tricky (but now works)
    * Mostly because of the way the docker socket is not created by default on podman
    * And the docker_host path is different inside the runner config file.
    * There are two config files, one (JSON) is always stored in .runner and contains the auth information and IP, and the other is YAML and runner needs the -c switch to specify it, and has the config of the runner (docker options, etc). It's a bit strange there are two files IMHO.
mfenniak 5 hours ago | parent [-]

> * Strange error: "Error: Open(/home/runner/.cache/actcache/bolt.db): timeout"

This will occur if you have a `forgejo-runner daemon` running while you try to use `exec` -- both are trying to open the cache database, and only the first to open it can operate. You could avoid this by changing the cache directory of the daemon by changing `cache.dir` in the config file, or run the two processes as different users.

> It's a bit strange there are two files IMHO.

The `.runner` file isn't a config file, it's a state file -- not intended for user editing. But yes, it's a bit odd.