Files
gymkhana/build.sh
Oier Bravo Urtasun 33b9af05d9
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m41s
feat(build): Windows export.
2025-11-10 01:38:11 +01:00

111 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
source bash_colors.sh
if [ -f .env ]; then
source .env
fi
# Output to stdout for godot export. --quiet or --verbose
STD_OUTPUT="--quiet"
PROJECT_PATH=$PWD
echo "Project path: $PROJECT_PATH"
VERSION=`git branch --show-current | sed 's/release\///'`
EXPORT_NAME="LasGymkhanikasDeUli-$VERSION"
EXPORT_DIR="build"
if [ ! -f $PROJECT_PATH/secret/api.cfg ]; then
echo "api.cfg File not found! creating one."
mkdir -p $PROJECT_PATH/secret/
cp $PROJECT_PATH/api.cfg.debug $PROJECT_PATH/secret/api.cfg
sed -i "s/API_KEY_PLACEHOLDER/$APPWRITE_API_KEY/" $PROJECT_PATH/secret/api.cfg
fi
echo "Building $VERSION version"
echo "Release builds"
mkdir -p $PROJECT_PATH/$EXPORT_DIR
BUILD_TYPES=(
"release"
"debug"
)
PLATFORMS=(
"amd"
"arm"
"web"
"web-multi"
"win"
)
declare -A PLATFORM_NAMES
PLATFORM_NAMES["amd"]=$EXPORT_NAME
PLATFORM_NAMES["arm"]=$EXPORT_NAME
PLATFORM_NAMES["web"]="index"
PLATFORM_NAMES["web-multi"]="index"
PLATFORM_NAMES["win"]=$EXPORT_NAME
declare -A PLATFORM_EXTENSIONS
PLATFORM_EXTENSIONS["amd"]=".x86_64.appimage"
PLATFORM_EXTENSIONS["arm"]=".arm_64.appimage"
PLATFORM_EXTENSIONS["web"]=".html"
PLATFORM_EXTENSIONS["web-multi"]=".html"
PLATFORM_EXTENSIONS["win"]=".exe"
declare -A PLATFORM_EXPORTS
PLATFORM_EXPORTS["amd"]="Linux"
PLATFORM_EXPORTS["arm"]="LinuxARM"
PLATFORM_EXPORTS["web"]="Web"
PLATFORM_EXPORTS["web-multi"]="WebThread"
PLATFORM_EXPORTS["win"]="Windows"
declare -A PLATFORM_OVERRIDES
PLATFORM_OVERRIDES["amd"]="debug"
PLATFORM_OVERRIDES["arm"]="debug"
PLATFORM_OVERRIDES["web"]="web"
PLATFORM_OVERRIDES["web-multi"]="web"
PLATFORM_OVERRIDES["win"]="debug"
CURRENT_EXPORT_DIR=$EXPORT_DIR/release
for TYPE in "${BUILD_TYPES[@]}"; do
echo "$TYPE builds..."
CURRENT_EXPORT_DIR=$PROJECT_PATH/$EXPORT_DIR/$TYPE
mkdir -p $CURRENT_EXPORT_DIR
for PLATFORM in "${PLATFORMS[@]}"; do
if [ "$TYPE" == "release" ]; then CURRENT_EXPORT_NAME=${PLATFORM_NAMES[$PLATFORM]}; else CURRENT_EXPORT_NAME="${PLATFORM_NAMES[$PLATFORM]}-$TYPE"; fi
echo "Building $PLATFORM..."
mkdir -p $CURRENT_EXPORT_DIR/$PLATFORM
cp $PROJECT_PATH/override.cfg.${PLATFORM_OVERRIDES[$PLATFORM]} $PROJECT_PATH/override.cfg
echo "escoria/main/game_version=\"$VERSION\"" >> $PROJECT_PATH/override.cfg
if [[ "$PLATFORM" == *"web"* ]]; then CURRENT_EXPORT_NAME=${PLATFORM_NAMES[$PLATFORM]}; else CURRENT_EXPORT_NAME=$CURRENT_EXPORT_NAME; fi
godot --headless $STD_OUTPUT --export-$TYPE "${PLATFORM_EXPORTS[$PLATFORM]}" "$CURRENT_EXPORT_DIR/$PLATFORM/$CURRENT_EXPORT_NAME${PLATFORM_EXTENSIONS[$PLATFORM]}"
done
cd $CURRENT_EXPORT_DIR/web
tar cfz ../web-$TYPE.tar.gz .
zip ../web-$TYPE.zip *
cd $PROJECT_PATH
cd $CURRENT_EXPORT_DIR/web-multi
tar cfz ../web-multi-$TYPE.tar.gz .
zip ../web-multi-$TYPE.zip *
cd $PROJECT_PATH
done
rm $PROJECT_PATH/override.cfg
cd $PROJECT_PATH
echo "Finish!🎉"