Marzac / le3d

A straightforward and easy to use 3D software renderer for real-time retro graphics.
https://marzac.github.io/le3d/
MIT License
60 stars 6 forks source link

Proper CI for le3d #28

Closed m0ppers closed 6 years ago

m0ppers commented 6 years ago

This adds CI support for Windows/Mac/Linux/Amiga

I have already added a badge for travis. Appveyor badge had something dynamic in its url.

Interestingly also the windows version is failing right now :S

https://ci.appveyor.com/project/m0ppers/le3d

not really sure why this is. Also this doesn't happen for me locally. That being said: that is the whole point of the CI stuff. Namely to remove "works for me" :D

m0ppers commented 6 years ago

ah no...broken for me as well. already commented out destroyer example as the amiga build failed. can reproduce on windows

Marzac commented 6 years ago

Excellent idea. Thank you very much. But I think you will have to explain me a bit as I am not very familiar with these tools. Always happy to learn :-)

m0ppers commented 6 years ago

to see what is happening there merge it into a different branch first I would say. most CI systems have some kind of yml file telling them what to do. they are totally vendor specific. What they all do is they will watch the repository for changes and then they will execute some sort of script and depending on the result they mark a build as failed and provide a nice badge for the repo containing the last build result:

grafik

Depending on the settings they also watch pull requests and will post the results into the pull requests so that the maintainer has the chance to see immediately if it works or not. That way the maintainer the maintainer needn't even worry about the code until the pull request is green.

Example: https://github.com/rust-lang/rust/pull/50998 ("All checks have passed") in the bottom.

here I have added travis and appveyor. travis is the "standard" ci system used for most projects on github. script and settings are contained in .travis.yml. In the first version I added gcc and clang compilation for both osx and linux. I also added amiga to the buildchain. It is using a docker container to build le3d (a docker container is something like a lightweight vm).

As travis only supports linux+osx I added appveyor as well (the "standard" windows solution).

If le3d would have unittests or something like that we would probably add that to the script. but so far a compile check is better than nothing :)

To enable it merge it into a different branch. Then login to both platforms and connect le3d with it. They will then notice that there is .appveyor.yml/.travis.yml and should start building it whenever you push to it :)

And ultimately you will get a badge as reward :D

Marzac commented 6 years ago

Excellent! Dankeschön!