Hey Warfley,
A year ago I built something similar for gitlab, the core of it is this python script: Link, it already solves the dependency issue and the multipackage packages (sounds kinda weird). Also has some neat functions like automatically detecting which packages a project requires, so maybe give it a look.
I'll have a look into that repo.
I have to be perfectly honest and say that it's mainly due to laziness that I haven't done the dependency and multipackage packages(it does sound funny) and nothing else.
So maybe looking at someone else's code may flicker a spark, hopefully
I don't know much about how github actions work, but for gitlab I used Linux docker images, which contain the Lazarus installation (Link) including a cross compiler for Windows, build using fpclazup.
This has the advantage of the docker images being prebuilt, so the lazarus and the cross compiler installation don't take up runtime during the CI/CD. If you are more interested in how this works, at least on gitlab, you can checkout my gitlab example: Link, but I have no idea how this would look on github.
Under GitHub I'm not sure of the virtualization software they use.
What you're given access is a Windows/Ubuntu/macOS machine with some stuff already installed.
Mainly linux tools to aid in installing other software. And even that I'm not sure since I didn't dig into the docs for Actions.
I looked at some simple TypeScript code and then hacked my way to the current incarnation.
I thought about porting this apporach to github actions, but tbh I mostly use gitlab anyway and github actions are to complicated for me xD. But it's nice to see that others also work on devops stuff for Lazarus.
GitHub actions are not complicated at all, it's just a YAML file to configure the triggers and list other actions you can use, like the necessary action to clone the project.
But you don't have to use any fancy stuff, cuz on that same YAML you can just use plain old bash scripting, or call python, etc, from that YAML.
Edit: just seen that I never commited the dependency resolution in my python script, so what I claimed earlier isn't really true. Maybe I can find it on my old laptop, but seems like this commit is lost, but maybe I will update this script some time, lately I've been using this again and I found a few things I wanted to add anyway.
You naughty, naughty boy!!!
Giving me hope in continuing to be a lazy bastard, and then you yank the rug ritght under me feet, AHHH THE DESPAIR
I would really thank you if you could find even the smallest of implementations!!!
Cheers,
Gus