Created
February 18, 2020 19:47
-
-
Save drhayes/7c0d09e3e799510b34e9a395a1017767 to your computer and use it in GitHub Desktop.
Gemini Rising release script as of 2020-02-18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -e | |
set -x | |
MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | |
MY_DIR=$(realpath "${MY_DIR}"/..) | |
GITHUB_WORKSPACE=${GITHUB_WORKSPACE:-$MY_DIR} | |
LOVEVERSION="11.2" | |
ITCH_USER=drhayes | |
GAME_NAME=gemini-rising | |
VERSION=$(git describe --tags) | |
CHANNEL=alpha | |
BINDIR=$(realpath "${GITHUB_WORKSPACE}/bin") | |
SRCDIR=$(realpath "${GITHUB_WORKSPACE}/src") | |
RELEASEDIR=$(realpath "${GITHUB_WORKSPACE}/release") | |
LOVEFILE=${RELEASEDIR}/${GAME_NAME}.love | |
WIN64=love-${LOVEVERSION}-win64 | |
OSX=love-${LOVEVERSION}-macos | |
# Sanity, we haz it. | |
echo LOVEFILE is "${LOVEFILE}" | |
echo RELEASEDIR is "${RELEASEDIR}" | |
echo VERSION is "${VERSION}" | |
echo CHANNEL is "${CHANNEL}" | |
# Download the binaries. | |
mkdir -p "${BINDIR}" | |
pushd "${BINDIR}" | |
curl -OL "https://bitbucket.org/rude/love/downloads/${WIN64}.zip" | |
curl -OL "https://bitbucket.org/rude/love/downloads/${OSX}.zip" | |
curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default | |
unzip butler.zip | |
# GNU unzip tends to not set the executable bit even though it's set in the .zip | |
chmod +x butler | |
# just a sanity check run (and also helpful in case you're sharing CI logs) | |
./butler -V | |
# Make sure the release directory exists. | |
mkdir -p "${RELEASEDIR}" | |
# Make the love file first. | |
pushd "${SRCDIR}" | |
zip -9 -r "${LOVEFILE}" ./* -x test/ | |
popd | |
# Tell GitHub actions the path of the .love artifact. | |
echo ::set-output name=lovepath::${LOVEFILE} | |
pushd "${BINDIR}" | |
# Win64. | |
unzip -j "${BINDIR}/${WIN64}.zip" -d "${RELEASEDIR}/${GAME_NAME}-win64" | |
pushd "${RELEASEDIR}/${GAME_NAME}-win64" | |
cat love.exe "${LOVEFILE}" > "${GAME_NAME}.exe" | |
rm love.exe lovec.exe | |
cd .. | |
zip -r "${RELEASEDIR}/${GAME_NAME}-win64.zip" "${GAME_NAME}-win64/" | |
popd | |
# Tell GitHub actions the path of the built artifact. | |
echo ::set-output name=win64path::${RELEASEDIR}/${GAME_NAME}-win64.zip | |
# Linux. | |
mkdir love-file-dir | |
cp "${LOVEFILE}" love-file-dir | |
# OSX. | |
TMPDIR=$(mktemp -d) | |
unzip -o "${BINDIR}/${OSX}.zip" -d "${TMPDIR}" | |
cp "${TMPDIR}/love.app" "${RELEASEDIR}/${GAME_NAME}.app" -Rv | |
cp "${LOVEFILE}" "${RELEASEDIR}/${GAME_NAME}.app/Contents/Resources/${GAME_NAME}.love" | |
# TODO: Replace game icons. | |
# TODO: Replace Info.plist info. | |
zip -ry "${RELEASEDIR}/${GAME_NAME}-osx.zip" "${RELEASEDIR}/${GAME_NAME}.app" | |
# Tell GitHub actions the path of the built artifact. | |
echo ::set-output name=osxpath::${RELEASEDIR}/${GAME_NAME}-osx.zip | |
# Butler push. | |
pushd "${BINDIR}" | |
./butler push "${RELEASEDIR}/${GAME_NAME}-win64.zip" "${ITCH_USER}/${GAME_NAME}:win64-${CHANNEL}" --userversion "${VERSION}" | |
./butler push "${RELEASEDIR}/${GAME_NAME}-osx.zip" "${ITCH_USER}/${GAME_NAME}:osx-${CHANNEL}" --userversion "${VERSION}" | |
./butler push love-file-dir "${ITCH_USER}/${GAME_NAME}:linux-${CHANNEL}" --userversion "${VERSION}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment