How does Gitea Compare?
The previous post was a fun and non-rigorous look at automating deployment of a Godot project to Itch.io from GitHub and GitLab.
But I have a homelab
Everyone does… stop bragging about it. Sometimes you want to deploy to Itch.io from the homelab.
Yes you can setup GitLab in a container, and it’s great! I looked at 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 just want a copy-paste of the other projects, so there are minor differences.
Don’t make me look at yaml, what is different from the other versions?
1 - A Runner of your Own
The biggest difference, to run on Gitea (your homelab or the .com
counterpart), requires you to
setup a runner. GitHub and GitLab offer use of their runners for some minutes for free. Then you
pay, or setup your own.
I had never done this before, but was able to do it for my local instance of Gitea and gitea.com
with UnRaid. I search for “gitea runner” in apps, gave it a runner token found at
https://gitea.com/user/settings/actions/runners
or your url/ip address, and it just worked. I had
to use two separate containers because Gitea gives you the token, but no big deal. The best part is
I can run as much as I want and not have to worry about hitting the limit of free minutes.
2 - Where teh Godot are
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 it 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.