зеркало из https://github.com/mozilla/gecko-dev.git
78 строки
2.2 KiB
Bash
78 строки
2.2 KiB
Bash
#! /bin/bash -xe
|
|
|
|
set -x -e
|
|
|
|
echo "running as" $(id)
|
|
|
|
####
|
|
# Taskcluster friendly wrapper for performing fx Mac OSX tests via mozharness.
|
|
####
|
|
|
|
# Inputs, with defaults
|
|
|
|
: MOZHARNESS_URL ${MOZHARNESS_URL}
|
|
: MOZHARNESS_SCRIPT ${MOZHARNESS_SCRIPT}
|
|
: MOZHARNESS_CONFIG ${MOZHARNESS_CONFIG}
|
|
|
|
WORKSPACE=$HOME
|
|
cd $WORKSPACE
|
|
|
|
rm -rf artifacts
|
|
mkdir artifacts
|
|
|
|
# test required parameters are supplied
|
|
if [[ -z ${MOZHARNESS_URL} ]]; then fail "MOZHARNESS_URL is not set"; fi
|
|
if [[ -z ${MOZHARNESS_SCRIPT} ]]; then fail "MOZHARNESS_SCRIPT is not set"; fi
|
|
if [[ -z ${MOZHARNESS_CONFIG} ]]; then fail "MOZHARNESS_CONFIG is not set"; fi
|
|
|
|
# Download mozharness with exponential backoff
|
|
# curl already applies exponential backoff, but not for all
|
|
# failed cases, apparently, as we keep getting failed downloads
|
|
# with 404 code.
|
|
download_mozharness() {
|
|
local max_attempts=10
|
|
local timeout=1
|
|
local attempt=0
|
|
|
|
echo "Downloading mozharness"
|
|
|
|
while [[ $attempt < $max_attempts ]]; do
|
|
if curl --fail -o mozharness.zip --retry 10 -L $MOZHARNESS_URL; then
|
|
rm -rf mozharness
|
|
if unzip -q mozharness.zip; then
|
|
return 0
|
|
fi
|
|
echo "error unzipping mozharness.zip" >&2
|
|
else
|
|
echo "failed to download mozharness zip" >&2
|
|
fi
|
|
echo "Download failed, retrying in $timeout seconds..." >&2
|
|
sleep $timeout
|
|
timeout=$((timeout*2))
|
|
attempt=$((attempt+1))
|
|
done
|
|
|
|
fail "Failed to download and unzip mozharness"
|
|
}
|
|
|
|
download_mozharness
|
|
rm mozharness.zip
|
|
|
|
# For telemetry purposes, the build process wants information about the
|
|
# source it is running; tc-vcs obscures this a little, but we can provide
|
|
# it directly.
|
|
export MOZ_SOURCE_REPO="${GECKO_HEAD_REPOSITORY}"
|
|
export MOZ_SOURCE_CHANGESET="${GECKO_HEAD_REV}"
|
|
|
|
# support multiple, space delimited, config files
|
|
config_cmds=""
|
|
for cfg in $MOZHARNESS_CONFIG; do
|
|
config_cmds="${config_cmds} --config-file ${cfg}"
|
|
done
|
|
|
|
rm -rf build logs properties target.dmg
|
|
|
|
# run the given mozharness script and configs, but pass the rest of the
|
|
# arguments in from our own invocation
|
|
python2.7 $WORKSPACE/mozharness/scripts/${MOZHARNESS_SCRIPT} ${config_cmds} "${@}"
|