108 lines
3.9 KiB
Bash
108 lines
3.9 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
targetPlatform=$1
|
||
|
|
targetName=$2
|
||
|
|
targetType=$3
|
||
|
|
targetConfig=$4
|
||
|
|
projectPath=$5
|
||
|
|
pluginPath=$6
|
||
|
|
|
||
|
|
PROJECT_BINARIES_PATH="$projectPath/Binaries/$targetPlatform"
|
||
|
|
PLUGIN_BINARIES_PATH="$pluginPath/Source/ThirdParty/$targetPlatform"
|
||
|
|
CONFIG_PATH="$projectPath/Config"
|
||
|
|
|
||
|
|
echo "Sentry: Start debug symbols upload"
|
||
|
|
|
||
|
|
if [ $targetType = "Editor" ]; then
|
||
|
|
echo "Sentry: Automatic symbols upload is not required for Editor target. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ $targetPlatform = "IOS" ] || [ $targetPlatform = "Mac" ]; then
|
||
|
|
SENTRY_CLI_EXEC="$pluginPath/Source/ThirdParty/CLI/sentry-cli-Darwin-universal"
|
||
|
|
elif [ $targetPlatform = "Linux" ] || [ $targetPlatform = "LinuxArm64" ]; then
|
||
|
|
SENTRY_CLI_EXEC="$pluginPath/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64"
|
||
|
|
elif [ $targetPlatform = "Android" ]; then
|
||
|
|
echo "Sentry: Debug symbols upload for Android is handled by Sentry's gradle plugin if enabled"
|
||
|
|
exit
|
||
|
|
else
|
||
|
|
echo "Sentry: Unexpected platform ${targetPlatform}. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
|
||
|
|
UPLOAD_SYMBOLS=$(awk -F "=" '/UploadSymbolsAutomatically/ {print $2}' "${CONFIG_PATH}/DefaultEngine.ini")
|
||
|
|
|
||
|
|
if [ ! -z $SENTRY_UPLOAD_SYMBOLS_AUTOMATICALLY ]; then
|
||
|
|
UPLOAD_SYMBOLS=$SENTRY_UPLOAD_SYMBOLS_AUTOMATICALLY
|
||
|
|
echo "Sentry: Automatic symbols upload settings were overridden via environment variable SENTRY_UPLOAD_SYMBOLS_AUTOMATICALLY with value '$SENTRY_UPLOAD_SYMBOLS_AUTOMATICALLY'"
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -z $UPLOAD_SYMBOLS ]; then
|
||
|
|
echo "Sentry: Automatic symbols upload is disabled in plugin settings. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ $UPLOAD_SYMBOLS != "True" ]; then
|
||
|
|
echo "Sentry: Automatic symbols upload is disabled in plugin settings. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
|
||
|
|
INCLUDE_SOURCES=$(awk -F "=" '/IncludeSources/ {print $2}' "${CONFIG_PATH}/DefaultEngine.ini")
|
||
|
|
|
||
|
|
CLI_ARGS=()
|
||
|
|
if [ -z $INCLUDE_SOURCES -a $UPLOAD_SYMBOLS == "True" ]; then
|
||
|
|
CLI_ARGS+=(--include-sources)
|
||
|
|
fi
|
||
|
|
|
||
|
|
CLI_LOG_LEVEL=$(awk -F "=" '/DiagnosticLevel/ {print $2}' "${CONFIG_PATH}/DefaultEngine.ini")
|
||
|
|
|
||
|
|
if [ -z $CLI_LOG_LEVEL ]; then
|
||
|
|
CLI_LOG_LEVEL="info"
|
||
|
|
fi
|
||
|
|
|
||
|
|
ENABLED_PLATFORMS=$(grep "EnableBuildPlatforms" "${CONFIG_PATH}/DefaultEngine.ini" | sed -n 's/^EnableBuildPlatforms=//p' | sed -e 's/^(\(.*\))$/\1/')
|
||
|
|
if [ ! -z $ENABLED_PLATFORMS ]; then
|
||
|
|
PLATFORMS_ARRAY=$(echo "$ENABLED_PLATFORMS" | sed -e 's/,/ /g')
|
||
|
|
if [[ "${PLATFORMS_ARRAY[@]}" =~ "bEnable$targetPlatform=False" ]]; then
|
||
|
|
echo "Sentry: Automatic symbols upload is disabled for build platform $targetPlatform. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
ENABLED_TARGETS=$(grep "EnableBuildTargets" "${CONFIG_PATH}/DefaultEngine.ini" | sed -n 's/^EnableBuildTargets=//p' | sed -e 's/^(\(.*\))$/\1/')
|
||
|
|
if [ ! -z $ENABLED_TARGETS ]; then
|
||
|
|
TARGETS_ARRAY=$(echo "$ENABLED_TARGETS" | sed -e 's/,/ /g')
|
||
|
|
if [[ "${TARGETS_ARRAY[@]}" =~ "bEnable$targetType=False" ]]; then
|
||
|
|
echo "Sentry: Automatic symbols upload is disabled for target type $targetType. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
ENABLED_CONFIGS=$(grep "EnableBuildConfigurations" "${CONFIG_PATH}/DefaultEngine.ini" | sed -n 's/^EnableBuildConfigurations=//p' | sed -e 's/^(\(.*\))$/\1/')
|
||
|
|
if [ ! -z $ENABLED_CONFIGS ]; then
|
||
|
|
CONFIGS_ARRAY=$(echo "$ENABLED_CONFIGS" | sed -e 's/,/ /g')
|
||
|
|
if [[ "${CONFIGS_ARRAY[@]}" =~ "bEnable$targetConfig=False" ]]; then
|
||
|
|
echo "Sentry: Automatic symbols upload is disabled for build configuration $targetConfig. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
export SENTRY_PROPERTIES="$projectPath/sentry.properties"
|
||
|
|
if [ ! -f "$SENTRY_PROPERTIES" ]; then
|
||
|
|
echo "Sentry: Properties file is missing: '$SENTRY_PROPERTIES'"
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ ! -f "$SENTRY_CLI_EXEC" ]; then
|
||
|
|
echo "Sentry: Sentry CLI is not configured in plugin settings. Skipping..."
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "Sentry: Upload started using PropertiesFile '$SENTRY_PROPERTIES'"
|
||
|
|
|
||
|
|
chmod +x "$SENTRY_CLI_EXEC"
|
||
|
|
|
||
|
|
"$SENTRY_CLI_EXEC" upload-dif $CLI_ARGS[@] --log-level $CLI_LOG_LEVEL "$PROJECT_BINARIES_PATH" "$PLUGIN_BINARIES_PATH"
|
||
|
|
|
||
|
|
echo "Sentry: Upload finished"
|