The previous post is a fun and non-rigorous dive into automating the deployment of a Godot project to Itch.io from GitHub and GitLab. The obvious follow up question is: What about Gitea?

But I have a homelab

Everyone does… stop bragging. You can also deploy to Itch.io from a homelab.

GitLab can be fired up in a container, and it’s great! I took some time to check out Gitea as a light weight alternative, and I have to admit it has started to win me over. Why is a different blog post (don’t hold your breath).

It was far easier to create an account on Gitea than expose my home Gitea instance so that’s how I chose to share the Gitea version of this project.

If you’re new to Gitea Actions, or Gitea in general, it’s easy to notice the “inspired by GitHub” style. They have a lot in common… including Actions. In fact they have so much in common with GitHub Actions, you can use GitHub actions in Gitea.

OMG show me the project already

I didn’t want a copy-paste of the other projects, there are minor differences.

Don’t make me look at yaml, what is different from the other versions?

1 - A Runner

Tto run on Gitea (your homelab or the .com counterpart), requires a runner. GitHub and GitLab offer use of their runners for free with limits.

I had never tried this before, but was able to do it for my local instance of Gitea and gitea.com. I fired up a “gitea runner” in a container, gave it a runner token found at https://gitea.com/user/settings/actions/runners or your url/ip address, and it just worked. Now I can run as much as I want and not have to worry about hitting the limit of free minutes… neat.

2 - Godot Download Location

I changed the Godot and export templates download urls. The first two projects used downloads.tuxfamily.org, which was fine until it wasn’t (to be fair any url to download files can become unaccessible–nothing against tuxfamily.org). The biggest advantage of tuxfamily is all the Godot downloads urls could be derived from the existing godot.project file. In this case the version, 4.2, is all that is needed to craft the url.

A switch to the official Godot downloads was preferable, but requires a more specific version of Godot. In this case 4.2.2. Fortunately, godot.project allows defining feature strings and that’s what this comment in the action is about. Add the more specific version of Godot version. An extra step, but I found it useful for making sure everyone is on the same version too. It looks like this idea is getting some official support too. Maybe someday it will just save it for us.

3 - When the Action Runs

Gitea doesn’t support running manually yet, so this Action runs on every push to main. It might be cool to give more constraints because it will run even on a readme update, but it’s fine for an example.

4 - Itch.io username not a secret

That title pretty much covers it.

5 - Most important difference

Of course the most important difference is I updated the game to do more than display text. Obviously the whole effort was for this screenshot.

alt text

Maybe when I build the same thing with BigBucket (is Bitbucket still a thing?) and Jenkins I’ll make the game interactive.