Files
UnrealEngine/Engine/Build/BatchFiles/Linux/QASmokeManual.sh
2025-05-18 13:04:45 +08:00

109 lines
2.1 KiB
Bash

#!/bin/bash
STEP=0
CURRENT_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
TIMESTAMP=`date +%y-%m-%d_%H.%M.%S`
LOG_FILE=$CURRENT_DIR/"QASmoke_$TIMESTAMP.log"
SUCCESS_MESSAGE="***** SMOKE SUCCESSFUL *****"
Header()
{
echo "Ran on `date` on `hostname`"
echo "Original location: $LOG_FILE"
}
OneTimeSetup()
{
echo "Performing one-time setup"
set -x
cp Engine/Build/Git/Setup.sh .
./Setup.sh
rm Setup.sh
set +x
}
GenerateProjectFiles()
{
echo "Generating project files"
set -x
bash GenerateProjectFiles.sh
set +x
}
BuildTarget()
{
echo "Cleaning $1"
set -x
make $1 ARGS="-clean"
set +x
echo "Attempting timed build of $1"
set -x
time make $1
set +x
echo "$1 was successful"
}
CompileTPS()
{
# FIXME: get rid of this step
echo "Recompiling editor dependencies locally"
set -x
pushd Engine/Build/BatchFiles/Linux
export VERBOSE=1
./BuildThirdParty.sh
popd
set +x
}
Run()
{
STEP=$((STEP+1))
echo "Step $STEP: $1 ${@:2}"
echo "------------------------------------------------------------------------" >> $LOG_FILE
echo " Step $STEP $1 ${@:2}" >> $LOG_FILE
echo "------------------------------------------------------------------------" >> $LOG_FILE
$1 ${@:2} >> $LOG_FILE 2>&1
}
# Main
set -e
if [ -z "$1" ]; then
echo "---------------"
echo "This is a script for QA to manually smoke a branch"
echo ""
echo "Successful run should end with $SUCCESS_MESSAGE"
echo "Any other messages indicate a problem - see `basename $LOG_FILE`"
echo ""
echo "---------------"
pushd ../../../.. >> /dev/null
Run Header
Run OneTimeSetup
Run GenerateProjectFiles
# rebuild dependencies locally for editor targets (extra safety still)
Run CompileTPS
# build usual targets, roughly ascending by build time
Run BuildTarget BlankProgram
Run BuildTarget UnrealPak
Run BuildTarget SlateViewer
Run BuildTarget UnrealClient
Run BuildTarget UnrealGame
Run BuildTarget UnrealServer
# build editor targets, roughly ascending by build time
Run BuildTarget ShaderCompileWorker
Run BuildTarget UnrealFrontend
Run BuildTarget UnrealEditor
popd >> /dev/null
else
time Run $1
fi
echo "$SUCCESS_MESSAGE"