mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
3b8df1c395
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
43 lines
955 B
Bash
Executable File
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
|