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.exe
andlovec.exe
icons with LIKO-12's icon. - Replaced
love.exe
andlovec.exe
manifest with LIKO-12's manifest. - Renamed
license.txt
intoLOVE-license.txt
. - Added
LIKO-12-license.txt
.
- Replaced
love.svg
with 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.icns
andGameIcon.icns
with LIKO-12's icon converted using an online website. - Patched
Info.plist
to change the application name and id, and removed the exports section. - Renamed
license.txt
intoLOVE-license.txt
. - Added
LIKO-12-license.txt
.
- Injected LIKO-12's icon, Activity and manifest.
- Patched
build.gradle
to 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
FILEVERSION
andPRODUCTVERSION
inVersionInfo
files (inwindows
folder). - 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 .zip
s.
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.