This repository generates the build templates for LIKO-12 using Github Actions.
It downloads LÖVE binaries, and patches them, then re-upload them into Github Releases of this repository.
Currently it makes tamplates for Windows (x86_64 and i686), Linux (x86_64 AppImage), macOS and Android (arm64 and armeabiv7).
- Replaced
love.exeandlovec.exeicons with LIKO-12's icon. - Replaced
love.exeandlovec.exemanifest with LIKO-12's manifest. - Renamed
license.txtintoLOVE-license.txt. - Added
LIKO-12-license.txt.
- Replaced
love.svgwith LIKO-12 png icon stored in a.svg(For scaling support). - Changed the application name & command and removed mime-type in
love.desktop(By replacing the whole file). - Added in
LIKO-12-license.txt.
- Replaced
OS X Application.icnsandGameIcon.icnswith LIKO-12's icon converted using an online website. - Patched
Info.plistto change the application name and id, and removed the exports section. - Renamed
license.txtintoLOVE-license.txt. - Added
LIKO-12-license.txt.
- Injected LIKO-12's icon, Activity and manifest.
- Patched
build.gradleto change applicationId, VersionCode and VersionName.
Usually the build system doesn't need any modifications for new LÖVE versions, but if some restructuring had been made into LÖVE, the build system would get broken and need inspection and manual update...
- Change the value in
LOVE_VERSION.txt - Update
FILEVERSIONandPRODUCTVERSIONinVersionInfofiles (inwindowsfolder). - Wait to see if the Github Actions build goes well.
- If it worked, publish a new release.
Update LICENSE, LIKO-12-license.txt and VersionInfo files (in windows folder).
- Create a new tag using
git tag TAGNAME, make it follow semver and don't prefix it withv. - Push the new tag using
git push --tags. - Wait for GitHub Actions to finish, their should be a new published release if everything went well.
- Delete the Github release if present.
- Delete the tag from Github using
git push --delete origin TAGNAME. - Delete the local tag using
git tag --delete TAGNAME.
- Change PATCH whenever any minor changes made into the templates, like updating the year number in
LIKO-12-license.txt. - Change MINOR whenever LÖVE version is changed, or the included libraries are changed/update.
- Change MAJOR when the templates structure is changed causing other build system replying on those templates to fail.
The Build Templates workflow is triggered whenever a new commit is pushed, and consist of 4 jobs:
Creates the build templates for Windows machines, it runs on a Windows machine due to Resource Hacker not being available but only on Windows, it uploads the generated build templates as artifacts.
Creates the build template for Linux machines, it runs on a linux machine and uses Lua scripts for generating the builds, it uploads the generated build templates as artifacts.
Creates the build templates for macOS machines, it runs on a linux machine and uses a Lua script for patching a file during the process, it uploads the generated build templates as artifacts.
Creates the build templates for Android devices, it runs on a linux machine and uses a Lua scripts for changing the package name.
It downloads and installs all the development tools required to compile LÖVE for Android.
Those 4 jobs run in parallel.
This is the final job, it uses Lua scripts and some third-party tools to do it's job, it runs on a linux machine and waits for the previous 3 jobs to finish successfully in order to run.
It downloads all the build templates artifacts, and compresses the Windows ones into .zips.
Internally the Lua script terminates the execution with success if the build was running on non-tagged commit.
If running on a tagged commit it creates a new public release and uploads the build templates into it.
Document written by @Rami-Sabbagh at 2019-09-26, last updated at 2022-07-11.