|
#!/usr/bin/env bash |
|
# This is quite hard-coded to the project i used it in, |
|
# and supports windows, mac, and linux |
|
# but should be a reasonable starting place for a local build + deploy-to-itch script |
|
|
|
# exit if any command returns an error |
|
set -e |
|
|
|
# UNITY_BIN="" // swap for windows path here |
|
UNITY_BIN="/Applications/Unity/Hub/Editor/2022.3.36f1/Unity.app/Contents/MacOS/Unity" |
|
echo "UNITY_BIN: $UNITY_BIN" |
|
|
|
BUTLER_BIN="$(which butler)" |
|
echo "BUTLER_BIN: $BUTLER_BIN" |
|
|
|
ITCH_PROJECT_ID="moonstorm-clerics/rapid-eye-madness" |
|
echo "ITCH_PROJECT_ID: $ITCH_PROJECT_ID" |
|
|
|
PROJECT_PATH="$PWD" |
|
echo "PROJECT_PATH: $PROJECT_PATH" |
|
|
|
############################################################################### |
|
## mac builds |
|
############################################################################### |
|
|
|
MACOS_BUILDS="Builds/MacOS/RapidEyeMadnessMacOSBuild" |
|
MACOS_LOG_PATH="$MACOS_BUILDS/build_log.txt" |
|
MACOS_BUILD_PATH="RapidEyeMadnessMacOSBuild.app" |
|
MACOS_ZIP_PATH="RapidEyeMadnessMacOSBuild.zip" |
|
|
|
function build_macos |
|
{ |
|
echo "Building for macos!" |
|
$UNITY_BIN -quit -batchmode -projectpath $PROJECT_PATH \ |
|
-buildOSXUniversalPlayer "$MACOS_BUILDS/$MACOS_BUILD_PATH" \ |
|
-logFile $MACOS_LOG_PATH |
|
echo "Built, zipping." |
|
cd $MACOS_BUILDS |
|
rm -rf $MACOS_ZIP_PATH |
|
zip -r $MACOS_ZIP_PATH $MACOS_BUILD_PATH |
|
cd $PROJECT_PATH |
|
echo "Zipped." |
|
} |
|
|
|
function itch_deploy_macos |
|
{ |
|
echo "Deploying macos build to itch" |
|
cd $MACOS_BUILDS |
|
"$BUTLER_BIN" push $MACOS_ZIP_PATH $ITCH_PROJECT_ID:macos |
|
cd $PROJECT_PATH |
|
echo "Deployed macos build to itch." |
|
} |
|
|
|
############################################################################### |
|
## windows builds |
|
############################################################################### |
|
|
|
WINDOWS_BUILDS="Builds/Windows" |
|
WINDOWS_LOG_PATH="$WINDOWS_BUILDS/build_log.txt" |
|
WINDOWS_BUILD_PATH="$WINDOWS_BUILDS/RapidEyeMadnessWindowsBuild/RapidEyeMadness.exe" |
|
WINDOWS_TO_ZIP_PATH="RapidEyeMadnessWindowsBuild" |
|
WINDOWS_ZIP_PATH="RapidEyeMadnessWindowsBuild.zip" |
|
|
|
function build_windows |
|
{ |
|
echo "Building for windows!" |
|
$UNITY_BIN -quit -batchmode -projectpath $PROJECT_PATH \ |
|
-buildWindows64Player "$WINDOWS_BUILD_PATH" \ |
|
-logFile $WINDOWS_LOG_PATH |
|
echo "Built, zipping." |
|
cd $WINDOWS_BUILDS |
|
rm -rf $WINDOWS_ZIP_PATH |
|
zip -r $WINDOWS_ZIP_PATH $WINDOWS_TO_ZIP_PATH |
|
cd $PROJECT_PATH |
|
echo "Zipped." |
|
} |
|
|
|
function itch_deploy_windows |
|
{ |
|
echo "Deploying windows build to itch" |
|
cd $WINDOWS_BUILDS |
|
"$BUTLER_BIN" push $WINDOWS_ZIP_PATH $ITCH_PROJECT_ID:windows |
|
cd $PROJECT_PATH |
|
echo "Deployed windows build to itch." |
|
} |
|
|
|
############################################################################### |
|
## linux builds |
|
############################################################################### |
|
|
|
LINUX_BUILDS="Builds/Linux" |
|
LINUX_LOG_PATH="$LINUX_BUILDS/build_log.txt" |
|
LINUX_BUILD_PATH="$LINUX_BUILDS/RapidEyeMadnessLinuxBuild/RapidEyeMadness.x86_64" |
|
LINUX_TO_ZIP_PATH="RapidEyeMadnessLinuxBuild" |
|
LINUX_ZIP_PATH="RapidEyeMadnessLinuxBuild.zip" |
|
|
|
function build_linux |
|
{ |
|
echo "Building for linux!" |
|
$UNITY_BIN -quit -batchmode -projectpath $PROJECT_PATH \ |
|
-buildLinux64Player $LINUX_BUILD_PATH \ |
|
-logFile $LINUX_LOG_PATH |
|
echo "Built, zipping." |
|
cd $LINUX_BUILDS |
|
rm -rf $LINUX_ZIP_PATH |
|
zip -r $LINUX_ZIP_PATH $LINUX_TO_ZIP_PATH |
|
cd $PROJECT_PATH |
|
echo "Zipped." |
|
} |
|
|
|
function itch_deploy_linux |
|
{ |
|
echo "Deploying linux build to itch" |
|
cd $LINUX_BUILDS |
|
"$BUTLER_BIN" push $LINUX_ZIP_PATH $ITCH_PROJECT_ID:linux |
|
cd $PROJECT_PATH |
|
echo "Deployed linux build to itch." |
|
} |
|
|
|
function build_and_deploy |
|
{ |
|
if [ $(basename $PROJECT_PATH) != "rapid-eye-madness" ] |
|
then |
|
echo "Expected to run in 'rapid-eye-madness' directory, exiting." |
|
exit 1 |
|
fi |
|
|
|
build_name=$1 |
|
|
|
if [ $build_name == "macos" ] |
|
then |
|
build_macos |
|
itch_deploy_macos |
|
elif [ $build_name == "windows" ] |
|
then |
|
build_windows |
|
itch_deploy_windows |
|
elif [ $build_name == "linux" ] |
|
then |
|
build_linux |
|
itch_deploy_linux |
|
elif [ $build_name == "all" ] |
|
then |
|
build_and_deploy windows |
|
build_and_deploy macos |
|
build_and_deploy linux |
|
else |
|
echo "Unsupported build name: $build_name" |
|
fi |
|
|
|
} |
|
|
|
build_and_deploy $@ |