mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
e11506c714
This patch makes it so we write the sccache log directly to the artifact directory, so that it will be uploaded even if the build fails. It also makes the log slightly more verbose. Both of these should help with diagnosing sccache failures in CI. The sccache log will no longer be explicitly gzip compressed, but some Taskcluster client implementations will store it as gzip compressed. Differential Revision: https://phabricator.services.mozilla.com/D6187 --HG-- extra : moz-landing-system : lando
88 lines
3.3 KiB
Plaintext
88 lines
3.3 KiB
Plaintext
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
# Setup for build cache
|
|
|
|
# builds where buildprops didn't have the data (eg: taskcluster) and without sccache disabled:
|
|
if test -z "$bucket" -a -z "$SCCACHE_DISABLE" -a -z "$MOZ_PGO"; then
|
|
|
|
# prevent rerun if az is set, or wget is not available
|
|
if test -z "$availability_zone" -a -x "$(command -v wget)"; then
|
|
if test -n "${TASKCLUSTER_WORKER_GROUP}"; then
|
|
# TASKCLUSTER_WORKER_GROUP is just the region now, so
|
|
# stick an extra character on to make the already-convoluted logic
|
|
# here simpler.
|
|
availability_zone="${TASKCLUSTER_WORKER_GROUP}x"
|
|
else
|
|
# timeout after 1 second, and don't retry (failure indicates instance is not in ec2 or network issue)
|
|
# availability_zone is of the form <region><letter> where region is e.g. us-west-2, and az is us-west-2a
|
|
availability_zone=$(wget -T 1 -t 1 -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || true)
|
|
fi
|
|
if test -z "$availability_zone" -o "$availability_zone" = "not-ec2"; then
|
|
availability_zone=not-ec2
|
|
else
|
|
# region is az with last letter trimmed
|
|
region=${availability_zone%?}
|
|
# set S3 bucket according to tree (level)
|
|
case "${GECKO_HEAD_REPOSITORY}" in
|
|
*hg.mozilla.org/try*)
|
|
bucket=taskcluster-level-1-sccache-${region}
|
|
;;
|
|
*hg.mozilla.org/integration/autoland*|*hg.mozilla.org/integration/mozilla-inbound*)
|
|
bucket=taskcluster-level-3-sccache-${region}
|
|
;;
|
|
esac
|
|
|
|
# set a dummy master
|
|
case "${region}" in
|
|
eu-central-1)
|
|
master=dummy.euc1.mozilla.com
|
|
;;
|
|
us-east-1)
|
|
master=dummy.use1.mozilla.com
|
|
;;
|
|
us-west-1)
|
|
master=dummy.usw1.mozilla.com
|
|
;;
|
|
us-west-2)
|
|
master=dummy.usw2.mozilla.com
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# if platform hasn't been determined from buildprops, and we're on windows,
|
|
# it must be set to prevent adding ac_add_options --with-ccache below
|
|
if test -z "$platform"; then
|
|
# set platform based on the SYSTEMROOT env var
|
|
case "${SYSTEMROOT}" in
|
|
*Windows)
|
|
platform=windows
|
|
suffix=.exe
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
if test -n "$bucket"; then
|
|
mk_add_options "export SCCACHE_BUCKET=$bucket"
|
|
case "$master" in
|
|
*us[ew][12].mozilla.com*|*euc1.mozilla.com*)
|
|
mk_add_options "export SCCACHE_NAMESERVER=169.254.169.253"
|
|
;;
|
|
esac
|
|
export CCACHE="$topsrcdir/sccache2/sccache${suffix}"
|
|
export SCCACHE_VERBOSE_STATS=1
|
|
mk_add_options MOZBUILD_MANAGE_SCCACHE_DAEMON=${topsrcdir}/sccache2/sccache
|
|
case "$platform" in
|
|
win*)
|
|
# For now, sccache doesn't support separate PDBs so force debug info to be
|
|
# in object files.
|
|
mk_add_options "export COMPILE_PDB_FLAG="
|
|
mk_add_options "export HOST_PDB_FLAG="
|
|
mk_add_options "export MOZ_DEBUG_FLAGS=-Z7"
|
|
;;
|
|
esac
|
|
fi
|