The update-verify job no longer checks out the repository. Instead, the scripts from tools/update-verify and their Python dependencies (mozrelease, redo) are baked into the Docker image via COPY directives. The shell scripts now use python3 directly instead of ./mach python. Overall changes: - Run update verify tests in a specific workspace directory - Use `UV_SRC` as the base for other relative imports and references - COPY required scripts and drop the checkout on update verify docker image - Run update verify with python directly instead of mach Differential Revision: https://phabricator.services.mozilla.com/D288300
75 lines
2.1 KiB
Bash
Executable File
75 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -ex
|
|
set -o pipefail
|
|
# This ugly hack is a cross-platform (Linux/Mac/Windows+MSYS) way to get the
|
|
# absolute path to the root of the update-verify source tree
|
|
pushd `dirname $0` &>/dev/null
|
|
UV_SRC=$(dirname $(pwd))
|
|
popd &>/dev/null
|
|
export UV_SRC
|
|
PYTHON='python3'
|
|
VERIFY_CONFIG="$MOZ_FETCHES_DIR/update-verify.cfg"
|
|
WORKSPACE_DIR="${WORKSPACE_DIR:-$PWD/workspace}"
|
|
mkdir -p "$WORKSPACE_DIR"
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
case $1 in
|
|
# Parse total-chunks
|
|
--total-chunks=*) chunks="${1#*=}"; shift 1;;
|
|
--total-chunks) chunks="${2}"; shift 2;;
|
|
|
|
# Parse this-chunk
|
|
--this-chunk=*) thisChunk="${1#*=}"; shift 1;;
|
|
--this-chunk) thisChunk="${2}"; shift 2;;
|
|
|
|
# Stop if other parameters are sent
|
|
*) echo "Unknown parameter: ${1}"; exit 1;;
|
|
esac
|
|
done
|
|
|
|
# Validate parameters
|
|
if [ -z "${chunks}" ]; then echo "Required parameter: --total-chunks"; exit 1; fi
|
|
if [ -z "${thisChunk}" ]; then echo "Required parameter: --this-chunk"; exit 1; fi
|
|
|
|
# release promotion
|
|
if [ -n "$CHANNEL" ]; then
|
|
EXTRA_PARAMS="--verify-channel $CHANNEL"
|
|
else
|
|
EXTRA_PARAMS=""
|
|
fi
|
|
$PYTHON $UV_SRC/scripts/chunked-verify.py --chunks $chunks --this-chunk $thisChunk \
|
|
--verify-config $VERIFY_CONFIG --diff-summary $WORKSPACE_DIR/diff-summary.log $EXTRA_PARAMS \
|
|
2>&1 | tee $WORKSPACE_DIR/verify_log.txt
|
|
|
|
print_failed_msg()
|
|
{
|
|
echo "-------------------------"
|
|
echo "This run has failed, see the above log"
|
|
echo
|
|
return 1
|
|
}
|
|
|
|
print_warning_msg()
|
|
{
|
|
echo "-------------------------"
|
|
echo "This run has warnings, see the above log"
|
|
echo
|
|
return 2
|
|
}
|
|
|
|
set +x
|
|
|
|
echo "Scanning log for failures and warnings"
|
|
echo "--------------------------------------"
|
|
|
|
# Test for a failure, note we are set -e.
|
|
# Grep returns 0 on a match and 1 on no match
|
|
# Testing for failures first is important because it's OK to to mark as failed
|
|
# when there's failures+warnings, but not OK to mark as warnings in the same
|
|
# situation.
|
|
( ! grep 'TEST-UNEXPECTED-FAIL:' $WORKSPACE_DIR/verify_log.txt ) || print_failed_msg
|
|
( ! grep 'WARN:' $WORKSPACE_DIR/verify_log.txt ) || print_warning_msg
|
|
|
|
echo "-------------------------"
|
|
echo "All is well"
|