hypnoscope wrote:Awesome, was planning on looking into this at some point as well. How do you get the .exe's back out again? S3?
Read the article, it deploys to Github Releases!
I have a very similar script somewhere (if I can't find it I'll write it again) for AppVeyor, but I had intentions to make one for TravisCI in order to deploy to Linux and Mac OSX, the script was something like this:
I first have an environment variable that determines the architecture, that means the script runs twice, once for 32bits and once for 64bits.
It basically downloads LÖVE for the specified architecture, unzipped it, and saved it in cache, downloaded and compiled LuaJIT 2.0.4 (for the specified architecture) and saved it in cache.
Then the script compiled binaries (for said architectures), after that static checks are made to all the .lua files using luacheck, and busted runs the tests (with coverage) on the spec, using the compiled LuaJIT executable.
After tests and checks succeed it creates a .love file with 7z, which gets combined with LÖVE's .exe. After that, rcedit changes the icon and metadata for said .exe.
Then the script creates a .zip file using 7z with: the .exe, all of the .dlls required by LÖVE, and any extra .dlls for the compiled binary modules, that .zip is then deployed to Github Releases
It was a really long script that did many things, yet it was lacking support for LuaRocks/LÖVE-rocks and even if ported to TravisCI I still need to create something that can create .apk's for Android and do something about iOS which I don't think would be an easy thing to deploy to CI tools