gecko-dev/taskcluster/scripts/misc/run-profileserver.sh
Mike Shal 3b8df1c395 Bug 1580028 - Always merge PGO profile data in the run task; r=firefox-build-system-reviewers,chmanchester
If the run task generates bad profile data, the merge step in the
profile-use task will fail. However, retrying the profile-use task
doesn't fix the problem, and there isn't a straightforward way to retry
the run task in this situation. Instead we can add a clang toolchain to
all the run tasks, and perform the merge there.

This means the output from the run task will always be a successfully
merged file called 'merged.profdata', and we no longer need to perform
the merge as part of the profile-use build as a GENERATED_FILES step.

Depends on D45262

Differential Revision: https://phabricator.services.mozilla.com/D45263

--HG--
extra : moz-landing-system : lando
2019-09-10 21:56:15 +00:00

43 lines
955 B
Bash
Executable File

#! /bin/bash -vex
set -x -e
echo "running as" $(id)
: NEED_XVFB ${NEED_XVFB:=false}
: UPLOAD_PATH ${UPLOAD_PATH:=$HOME/artifacts}
export UPLOAD_PATH
####
# Taskcluster friendly wrapper for running the profileserver
####
PGO_RUNDIR=obj-firefox/dist
export JARLOG_FILE="en-US.log"
export LLVM_PROFDATA=$MOZ_FETCHES_DIR/clang/bin/llvm-profdata
set -v
if $NEED_XVFB; then
# run XVfb in the background
. /builds/worker/scripts/xvfb.sh
cleanup() {
local rv=$?
cleanup_xvfb
exit $rv
}
trap cleanup EXIT INT
start_xvfb '1024x768x24' 2
fi
# Move our fetched firefox into objdir/dist so the jarlog entries will match
# the paths when the final PGO stage packages the build.
mkdir -p $PGO_RUNDIR
mkdir -p $UPLOAD_PATH
mv $MOZ_FETCHES_DIR/firefox $PGO_RUNDIR
./mach python build/pgo/profileserver.py --binary $PGO_RUNDIR/firefox/firefox
tar -acvf $UPLOAD_PATH/profdata.tar.xz merged.profdata en-US.log