Skip to content

directory shenanigans #192

directory shenanigans

directory shenanigans #192

Workflow file for this run

name: 'Custom Assembly'
on:
push:
tags:
- '*'
jobs:
assembly:
if: ${{ github.event_name == 'push' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Version naming
run: |
echo "version = \"${GITHUB_REF#refs/tags/}\"" > load/version.lua
- name: Assemble
run: |
zip -r9 cambridge.love libs load res scene tetris *.lua -x "res/img/rpc/*" res/bgm/pacer_test.mp3 "libs/discord-rpc*" "libs/discordGameSDK/*"
cat dist/windows/love.exe cambridge.love > dist/windows/cambridge.exe
cat dist/win_aarch64/love.exe cambridge.love > dist/win_aarch64/cambridge.exe
cat dist/win32/love.exe cambridge.love > dist/win32/cambridge.exe
cp SOURCES.md LICENSE.md dist/windows/
cp SOURCES.md LICENSE.md dist/win32/
cp SOURCES.md LICENSE.md dist/linux/
mkdir dist/windows/libs/
mkdir dist/win32/libs/
cp libs/discord-rpc_x64.dll dist/windows/libs/
cp libs/discord-rpc_x86.dll dist/win32/libs/
- name: Install packages for appimagetool
run: |
sudo add-apt-repository universe
sudo apt install libfuse2
- name: Unpack and fuse LOVE 11.5 AppImage and then re-package
working-directory: ./dist/linux
run: |
./love-11.5-x86_64.AppImage --appimage-extract
sed -i 's/Exec=love/Exec=cambridge/g' squashfs-root/love.desktop
sed -i 's/Icon=love/Icon=cambridge_icon/g' squashfs-root/love.desktop
sed -i 's/Name=LÖVE/Name=Cambridge/g' squashfs-root/love.desktop
sed -i 's/Comment=The unquestionably awesome 2D game engine/Comment=The Open Source Arcade Block Stacker!/g' squashfs-root/love.desktop
sed -i 's/#FUSE_PATH="$APPDIR\/my_game"/FUSE_PATH="$APPDIR\/bin\/cambridge"/g' squashfs-root/AppRun
mv squashfs-root/love.desktop squashfs-root/cambridge.desktop
cat squashfs-root/bin/love ../../cambridge.love > squashfs-root/bin/cambridge
chmod +x squashfs-root/bin/cambridge
cp ../../res/img/cambridge_icon.png squashfs-root/
mkdir squashfs-root/bin/libs
cp ../../libs/discord-rpc.so squashfs-root/bin/libs
./appimagetool-x86_64.AppImage squashfs-root cambridge_linux_x64.AppImage
rm -rf ./squashfs-root/
- name: Unpack and fuse LOVE 12.0 AppImage and then re-package
working-directory: ./dist/linux
run: |
./love-12.0-x86_64-dev_ci.AppImage --appimage-extract
sed -i 's/Exec=love/Exec=cambridge/g' squashfs-root/love.desktop
sed -i 's/Icon=love/Icon=cambridge_icon/g' squashfs-root/love.desktop
sed -i 's/Name=LÖVE/Name=Cambridge/g' squashfs-root/love.desktop
sed -i 's/Comment=The unquestionably awesome 2D game engine/Comment=The Open Source Arcade Block Stacker!/g' squashfs-root/love.desktop
sed -i 's/#FUSE_PATH="$APPDIR\/my_game"/FUSE_PATH="$APPDIR\/bin\/cambridge"/g' squashfs-root/AppRun
mv squashfs-root/love.desktop squashfs-root/cambridge.desktop
cat squashfs-root/bin/love ../../cambridge.love > squashfs-root/bin/cambridge
chmod +x squashfs-root/bin/cambridge
cp ../../res/img/cambridge_icon.png squashfs-root/
mkdir squashfs-root/bin/libs
cp ../../libs/discord-rpc.so squashfs-root/bin/libs
./appimagetool-x86_64.AppImage squashfs-root cambridge_linux_experimental.AppImage
rm -rf ./squashfs-root/
- name: Zip releases
working-directory: ./dist
run: |
(cd ./win32 && zip -r9 ../cambridge_windows_x86.zip * -x ./win32/love.exe)
(cd ./windows && zip -r9 ../cambridge_windows_x64.zip * -x ./windows/love.exe)
(cd ./win_aarch64 && zip -r9 ../cambridge_windows_aarch64_experimental.zip * -x love.exe lovec.exe)
(cd ../ && zip -r9 ./dist/cambridge_other.zip SOURCES.md LICENSE.md cambridge.love libs)
(cd ./linux && zip -r9 ../cambridge_linux_x64.zip cambridge_linux_x64.AppImage SOURCES.md LICENSE.md && zip -r9 ../cambridge_linux_experimental.zip cambridge_linux_experimental.AppImage SOURCES.md LICENSE.md)
- name: Cleanup
run: |
rm -f cambridge.love
rm -f dist/windows/cambridge.exe
rm -f dist/windows/SOURCES.md
rm -f dist/windows/LICENSE.md
rm -rf dist/windows/libs
rm -f dist/win32/cambridge.exe
rm -f dist/win32/SOURCES.md
rm -f dist/win32/LICENSE.md
rm -f dist/linux/SOURCES.md
rm -f dist/linux/LICENSE.md
rm -rf dist/win32/libs
rm -f cambridge_linux_x64.AppImage
rm -f cambridge_linux_experimental.AppImage
- name: "Release"
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
files: dist/cambridge_*