dborth / snes9xgx

Snes9x GX - Port of Snes9x for Wii
http://wiibrew.org/wiki/Snes9x_GX
Other
437 stars 62 forks source link

Add automated build via Cirrus CI #929

Closed bladeoner closed 4 years ago

bladeoner commented 4 years ago

@dborth This change enables automated build via Cirrus CI.

The build is succesful which gives us a good overview if code that will be merged into the source will break anything.

At this point the compiled files are giving me a black screen when booting so the emulators that are compiled are not yet functional, but for now we can use it to see how compiling goes when merging code. I cannot update the Cirrus CI devkitPro environment to see if that fixes it because that will break the compile process.

Updating to the latest devkitPro tools also broke the compile on my machine I opened an issue here. Don't know if you have an idea what is going on, I have added my logfile.

To get the Cirrus CI to work it requires you do perform some steps:

The builds are continuously after a commit or after you add some code to a branch.

I've added the Freetype (older version we use) to the source because it will be downloaded on the Cirrus CI server and copied over the one that is already installed on that machine.

It works with profiles so it's a docker machine at Cirrus CI with Linux and devkitPro tools pre-installed.

carstene1ns commented 4 years ago

Question: Why is the old freetype needed? API is compatible, so should be possible to use the latest. Btw. GitHub Actions could also be used as they offer docker-based compilation actions as well, so no external service is needed.

Good idea to add CI/CD! :)

dborth commented 4 years ago

For some reason linking in the devkitpro compile of freetype causes a crash in wiiuse in the emulator. I only discovered the cause was freetype through trial and error. I have yet to test if this is fixed on the newest devkitppc and we can switch back. I also never did try compiling freetype myself to see if that made a difference.

dborth commented 4 years ago

Yup, just checked again. Same thing. There's something wrong with the ppc-freetype build from devkitpro.

bladeoner commented 4 years ago

@carstene1ns the Cirrus CI has a devkitPro docker machine don't know if github has one. For now the build files don't work but it gives us more information.

Now that the source supports the latest tools I will see if I can update the ci/cd.

carstene1ns commented 4 years ago

@bladeoner Well, you can use every image available on dockerhub, which is the same with cirrus-ci I guess. As said it does not really matter which CI/CD solution is used.

@dborth That crash is really interesting, might be worth to build freetype without bz2 and png support for testing.