123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #! /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} "${@}"
|