stuntrally / stuntrally3

3D racing game with own Track Editor. The main repository with Stunt Rally 3 sources and data. Continuation of Stunt Rally 2.x using Ogre-Next 3.0.
https://stuntrally.tuxfamily.org/
GNU General Public License v3.0
102 stars 7 forks source link

Add GitHub Actions CI builds for easy testing #6

Open Calinou opened 1 year ago

Calinou commented 1 year ago

Similar to what https://github.com/stuntrally/stuntrally has, we should add CI builds with artifacts so you can test the latest Git version quickly. This is especially important for Linux as OGRE-next and MyGUI-next are now required, neither of which are widely available in Linux distribution repositories. See also https://github.com/stuntrally/stuntrally3/pull/1.

To keep artifacts small, only the Stunt Rally and sr-editor executables should be included (plus any required libraries), not the game data. You'd have to download the game data and tracks as a ZIP separately, then install the executables within the root folder of the extracted game data.

Maybe we can build a Flatpak for Linux too, but separating the game data from binaries will require modifying Stunt Rally so that it can optionally look for game data in a separate folder (since it won't be included in the Flatpak itself in this case).

cryham commented 1 year ago

Right. But does #1 already add Actions? I'm not sure what the status is there.

AnotherFoxGuy commented 1 year ago

But does https://github.com/stuntrally/stuntrally3/pull/1 already add Actions?

Yes, that PR adds GitHub Actions, you can a preview of it here: https://github.com/AnotherFoxGuy/stuntrally3/actions The issue with #1 is that I've been unable to get stuntrally3 to build properly

cryham commented 11 months ago

Ok @Calinou but how would that ZIP with data be made? Or shoud it be git pulled by user? Probably there should be a hash of data saying this auto build binary needs repo from this commit to work (was based on it). Data like materials, Gui layouts and others really need to be the same, not from other version, since at least Gui will crash game if it there isn't a control in .layout but is needed in code. Anyways I'm okay if we have a 1 to 2GB zip always. Downloads are fast, at least no data will be misplaced or so.

cryham commented 5 months ago

Hi @AnotherFoxGuy So this is being built okay since a while. But just recently we tested Windows zip and it does not have RenderSystem_GL3Plus.dll which seems to be the only one working for SR3 now. Do you build it in your package ogre-next, could you add it? As for Linux there is no zip or other pack. What needs to be done to have it auto made on builds, is it impossible? Looks the same in old SR too.

Calinou commented 5 months ago

Anyways I'm okay if we have a 1 to 2GB zip always. Downloads are fast, at least no data will be misplaced or so.

I think this will be the best approach from an UX perspective, but at the same time, remember that GitHub Actions artifact storage is limited to 10 GB in total per repository. If you have large artifacts already uploaded (and not expired yet), you may be prevented from creating builds for every commit (or even daily builds) if you keep the default retention limit of 90 days. You could get around this by reducing the artifact retention limit in the repository settings, and creating builds less often if done on a schedule. Building every 2 days and using a retention limit of 15 days should work within this 10 GB limit.

cryham commented 5 months ago

Yes space is an issue. I'd love to move to some hosting and not bother if we fit into 2GB limit per release on github or how is it on sourceforge IDK. But hosting is costly and I'd rather not spend time moving all, unless necessary. Just FYI, CI builds are small here 15MB (only Windows) and only have binaries. So it's not an issue. But for big releases it could be soon.

cryham commented 4 months ago

Something got broken recently. Both builds are failing. @AnotherFoxGuy could you please look into it?

AnotherFoxGuy commented 4 months ago

@cryham The licence file got deleted: https://github.com/stuntrally/stuntrally3/commit/63441f136c9409adbe4a52d1d07682db5777c280 That file is used for the cpack installers

cryham commented 4 months ago

Ah thanks, I didn't realize. Changed to License.txt