How About Gitea?
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.
Maybe when I build the same thing with BigBucket (is Bitbucket still a thing?) and Jenkins I’ll make the game interactive.