mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00

Build parameters have to be parsed because they can no longer be implicitly passed, as they need to be interpreted for detecting extensions.
133 lines
3.1 KiB
Bash
133 lines
3.1 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
#
|
|
# Set project path
|
|
#
|
|
|
|
UNITY_PROJECT_PATH="$GITHUB_WORKSPACE/$PROJECT_PATH"
|
|
echo "Using project path \"$UNITY_PROJECT_PATH\"."
|
|
|
|
#
|
|
# Display the name for the build, doubles as the output name
|
|
#
|
|
|
|
echo "Using build name \"$BUILD_NAME\"."
|
|
|
|
#
|
|
# Display the build's target platform;
|
|
#
|
|
|
|
echo "Using build target \"$BUILD_TARGET\"."
|
|
|
|
#
|
|
# Display build path and file
|
|
#
|
|
|
|
echo "Using build path \"$BUILD_PATH\" to save file \"$BUILD_FILE\"."
|
|
BUILD_PATH_FULL="$GITHUB_WORKSPACE/$BUILD_PATH"
|
|
CUSTOM_BUILD_PATH="$BUILD_PATH_FULL/$BUILD_FILE"
|
|
|
|
#
|
|
# Set the build method, must reference one of:
|
|
#
|
|
# - <NamespaceName.ClassName.MethodName>
|
|
# - <ClassName.MethodName>
|
|
#
|
|
# For example: `BuildCommand.PerformBuild`
|
|
#
|
|
# The method must be declared static and placed in project/Assets/Editor
|
|
#
|
|
|
|
if [ -z "$BUILD_METHOD" ]; then
|
|
# User has not provided their own build command.
|
|
#
|
|
# Use the script from this action which builds the scenes that are enabled in
|
|
# the project.
|
|
#
|
|
echo "Using built-in build method."
|
|
# Create Editor directory if it does not exist
|
|
mkdir -p "$UNITY_PROJECT_PATH/Assets/Editor/"
|
|
# Copy the build script of Unity Builder action
|
|
cp -r "/UnityBuilderAction/Assets/Editor" "$UNITY_PROJECT_PATH/Assets/Editor/"
|
|
# Set the Build method to that of UnityBuilder Action
|
|
BUILD_METHOD="UnityBuilderAction.Builder.BuildProject"
|
|
# Verify recursive paths
|
|
ls -Ralph "$UNITY_PROJECT_PATH/Assets/Editor/"
|
|
#
|
|
else
|
|
# User has provided their own build method.
|
|
# Assume they also bring their own script.
|
|
#
|
|
echo "User set build method to $BUILD_METHOD."
|
|
#
|
|
fi
|
|
|
|
# Set build method to execute as flag + argument
|
|
EXECUTE_BUILD_METHOD="-executeMethod $BUILD_METHOD"
|
|
|
|
|
|
# The build specification below may require Unity 2019.2.11f1 or later (not tested below).
|
|
# Reference: https://docs.unity3d.com/2019.3/Documentation/Manual/CommandLineArguments.html
|
|
|
|
#
|
|
# Build info
|
|
#
|
|
|
|
echo ""
|
|
echo "###########################"
|
|
echo "# Current build dir #"
|
|
echo "###########################"
|
|
echo ""
|
|
|
|
echo "Creating \"$BUILD_PATH_FULL\" if it does not exist."
|
|
mkdir -p "$BUILD_PATH_FULL"
|
|
ls -alh "$BUILD_PATH_FULL"
|
|
|
|
echo ""
|
|
echo "###########################"
|
|
echo "# Project directory #"
|
|
echo "###########################"
|
|
echo ""
|
|
|
|
ls -alh $UNITY_PROJECT_PATH
|
|
|
|
echo ""
|
|
echo "###########################"
|
|
echo "# Building platform #"
|
|
echo "###########################"
|
|
echo ""
|
|
|
|
xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' \
|
|
/opt/Unity/Editor/Unity \
|
|
-batchmode \
|
|
-logfile /dev/stdout \
|
|
-quit \
|
|
-customBuildName "$BUILD_NAME" \
|
|
-projectPath "$UNITY_PROJECT_PATH" \
|
|
-buildTarget "$BUILD_TARGET" \
|
|
-customBuildTarget "$BUILD_TARGET" \
|
|
-customBuildPath "$CUSTOM_BUILD_PATH" \
|
|
$EXECUTE_BUILD_METHOD
|
|
|
|
# Catch exit code
|
|
BUILD_EXIT_CODE=$?
|
|
|
|
# Display results
|
|
if [ $BUILD_EXIT_CODE -eq 0 ]; then
|
|
echo "Build succeeded";
|
|
else
|
|
echo "Build failed, with exit code $BUILD_EXIT_CODE";
|
|
fi
|
|
|
|
#
|
|
# Results
|
|
#
|
|
|
|
echo ""
|
|
echo "###########################"
|
|
echo "# Build directory #"
|
|
echo "###########################"
|
|
echo ""
|
|
|
|
ls -alh "$BUILD_PATH_FULL"
|