I’ve switched one of my snaps (rpcs3-emu) from GitHub Actions to TravisCI due to the Github hosted runners running out of space when building the snap. I don’t believe TravisCI should have this problem, however I haven’t been able to produce a successful build and get the following error message: The job exceeded the maximum time limit for jobs, and has been terminated.. The reason I believe the snap build takes quite some time to build is due to a LLVM submodule dependency being built. Has anyone seen this before with their Snap builds on Travis? If so any ideas how to fix this?
TravisCI has better limits if you go with a payed tier (https://travis-ci.com/plans), albeit this might be a bit taxing for open source. Vendors are usually accommodating if you reach out to them with a specific concern.
The Self Hosted GH Action might be something you could look into as well.
Lastly, not mentioned in the post, but I believe Circle CI has a 5 hour time limit.
Going out of of the CI realm but sticking to the CD part. If this is not to validate pull requests, maybe just hooking up https://snapcraft.io/build is enough.
Gave CircleCI a try as mentioned by @sergiusens, and it built and deployed successfully. Although turns out RPCS3 do have prebuilt LLVM libs (they use a custom fork of LLVM with workarounds for RPCS3 so don’t think I could use LLVM from the archives as suggested by @lucyllewy), this cut down the build time so no longer an issue anymore.
During this experimentation I was wondering about using the snapcraft build service (wouldn’t be able to use it for RPCS3 due to making use of the experimental-package feature, but could use it for some other snaps I maintain). Previously I didn’t use this due to my CI running a few steps before carrying out the snap build. I took a look at the snapcraft remote-build command and it seems like I could make use of this to build my snap. Just wondering can I marry that command with something like Github actions? When I run the command locally it gets me to authenticate through a web browser. Is there a workaround for a CI environment?