29ac17a090
* SPEC-7135 Provide a method to re-trigger compiler detection for changes that require it * removing check (is wrong and is not necessary) * Invert existance check * add empty lines at the end * Clean is triggering on each build * clearing if the variable is false * test code to understand what is going on... * yeap, looks good * handling "false" in linux/mac * fix for linux/mac * Fixing typos
68 lines
2.4 KiB
Bash
Executable File
68 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
|
# its licensors.
|
|
#
|
|
# For complete copyright and license terms please see the LICENSE at the root of this
|
|
# distribution (the "License"). All use of this software is governed by the License,
|
|
# or, if provided, by the license below or the license accompanying this file. Do not
|
|
# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
#
|
|
|
|
set -o errexit # exit on the first failure encountered
|
|
|
|
# Jenkins defines environment variables for parameters and passes "false" to variables
|
|
# that are not set. Here we clear them if they are false so we can also just define them
|
|
# from command line
|
|
if [[ "${CLEAN_ASSETS}" == "false" ]]; then
|
|
CLEAN_ASSETS=
|
|
fi
|
|
if [[ "${CLEAN_OUTPUT_DIRECTORY}" == "false" ]]; then
|
|
CLEAN_OUTPUT_DIRECTORY=
|
|
fi
|
|
|
|
if [[ -n "$CLEAN_ASSETS" ]]; then
|
|
echo "[ci_build] CLEAN_ASSETS option set"
|
|
for project in $(echo $CMAKE_LY_PROJECTS | sed "s/;/ /g")
|
|
do
|
|
if [[ -d "$project/Cache" ]]; then
|
|
echo "[ci_build] Deleting \"$project/Cache\""
|
|
rm -rf $project/Cache
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# If the node label changes, we issue a clean output since node changes can change SDK/CMake/toolchains/etc
|
|
LAST_CONFIGURE_NODE_LABEL_FILE=ci_last_node_label.txt
|
|
if [[ -n "$NODE_LABEL" ]]; then
|
|
if [[ -d $OUTPUT_DIRECTORY ]]; then
|
|
pushd $OUTPUT_DIRECTORY
|
|
if [[ -e ${LAST_CONFIGURE_NODE_LABEL_FILE} ]]; then
|
|
LAST_NODE_LABEL=$(<${LAST_CONFIGURE_NODE_LABEL_FILE})
|
|
else
|
|
LAST_NODE_LABEL=
|
|
fi
|
|
# Detect if the node label has changed
|
|
if [[ "${LAST_NODE_LABEL}" != "${NODE_LABEL}" ]]; then
|
|
echo [ci_build] Last run was done with node label \"${LAST_NODE_LABEL}\", new node label is \"${NODE_LABEL}\", forcing CLEAN_OUTPUT_DIRECTORY
|
|
CLEAN_OUTPUT_DIRECTORY=1
|
|
fi
|
|
popd
|
|
fi
|
|
fi
|
|
|
|
if [[ -n "$CLEAN_OUTPUT_DIRECTORY" ]]; then
|
|
echo "[ci_build] CLEAN_OUTPUT_DIRECTORY option set"
|
|
if [[ -d $OUTPUT_DIRECTORY ]]; then
|
|
echo "[ci_build] Deleting \"${OUTPUT_DIRECTORY}\""
|
|
rm -rf ${OUTPUT_DIRECTORY}
|
|
fi
|
|
fi
|
|
|
|
mkdir -p ${OUTPUT_DIRECTORY}
|
|
# Save the node label
|
|
pushd $OUTPUT_DIRECTORY
|
|
echo "${NODE_LABEL}" > ${LAST_CONFIGURE_NODE_LABEL_FILE}
|
|
popd
|