Files
palemoon27/testing/taskcluster/scripts/builder/build-linux.sh
T
roytam1 f855ceaa31 import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1163826 - Add remainder of top .jp sites to CSS unprefixing service whitelist. r=dholbert (8ed22f2638)
- Bug 1165834: Add alicdn.com (used by taobao.com) to the CSS Unprefixing Service whitelist. r=miketaylr (30d150c28c)
- Bug 1166792 - Add 3rd batch of top .jp sites to CSS unprefixing service whitelists. r=dholbert (e4073c1f09)
- Bug 1170375 - Add 4th batch of top .jp sites to CSS unprefixing service whitelists. r=dholbert (d741e57cb0)
- Bug 1207850 - Temporary fix for canceling the pump used by FetchBody. r=nsm (bc85cb1500)
- Bug 1224865: Don't set a document in FetchDriver for requests in workers. r=bkelly (7bcb0bd16b)
- Bug 1108181 - Make Headers iterable; r=bzbarsky (da8d6f8bb2)
- Bug 1217501 P5 Relax guard checking on Headers with existing headers. r=ehsan (75ec3b6ae5)
- Bug 1207882 - Use a separate build target for config/buildid. r=gps (ad9f536aac)
- Bug 1216697 - Unship Request.cache until the implementation is finished; r=bzbarsky (49264a21d8)
- Bug 1218119 - Simplify defining worker prefs; r=baku (8987aa23c3)
- namespace (d88c3b7fc6)
- Bug 1179489 - Don't count service workers towards an origin's max worker quota; r=nsm (ce5e1345ba)
- Bug 1151646 - Cleanup, r=khuey. (d119d19ea7)
- Bug 1118778 - Write upload properties from upload.py; r=glandium (f8745ffda8)
- Bug 1194741 - Display upload output; r=nalexander (7adaa41d11)
- Bug 1197293 - allow for TC builds that don't use 'make upload'; r=ted (e671e7c651)
- Bug 1137000 - Add support for SDK building to moz-automation.mk. r=mshal (69b7ccb3c8)
- Bug 1175895 - aid greppability of MOZ_AUTOMATION_*; r=ted (c9a099f168)
- Bug 1198179 - Kill gen_mach_buildprops.py; r=ted (fa74e1930f)
- Bug 1198179 - make upload.py write properties even if not uploading; r=ted (e7ca79b807)
- Bug 8623031 - Move desktop build logic to a container neutral location; r=dustin (81dc866373)
- Bug 1187139 (part 1) - Replace nsBaseHashtable::Enumerate() calls in accessible/ with iterators. r=tbsaunde. (7a75c73d17)
- Bug 1187139 (part 2) - Replace nsBaseHashtable::Enumerate() calls in accessible/ with iterators. r=tbsaunde. (c631350ddb)
- Bug 1187139 (part 3) - Replace nsBaseHashtable::Enumerate() calls in accessible/ with iterators. r=tbsaunde. (052cced2ca)
- Bug 1225396 part 4 - Remove @@iterator workaround in Codegen.py. r=bz (3b05ddc4f0)
- Bug 1048695 part 1. Pass the set of globals where a member should NOT be exposed to MemberCondition. r=peterv (d5c9040323)
- Bug 1048695 part 2. Make interface members not be exposed based on their nonExposedGlobals. r=peterv (e852319bd0)
- Bug 1229493 - Stop shell-only modules classes being reported as standard classes r=shu (4a6457af8d)
- Bug 1151646 - Fix static analysis bustage. (347564b4d2)
- Bug 1231051 - Moz2Dify nsNativeThemeCocoa::DrawWidgetBackground. r=mstange. (cbcbe17e30)
- Bug 1178984 - Crashes at nsMenuBarX::RemoveMenuAtIndex. r=spohl (6e5869ae28)
- leftovers of Bug 1151345 - Add debug logging to help decipher this bug. r=spohl (22d42fc66d)
2023-04-04 12:14:15 +08:00

154 lines
4.7 KiB
Bash

#! /bin/bash -vex
set -x -e
####
# Taskcluster friendly wrapper for performing fx desktop builds via mozharness.
####
# Inputs, with defaults
: MOZHARNESS_SCRIPT ${MOZHARNESS_SCRIPT}
: MOZHARNESS_CONFIG ${MOZHARNESS_CONFIG}
: TOOLTOOL_CACHE ${TOOLTOOL_CACHE:=/home/worker/tooltool-cache}
: RELENGAPI_TOKEN ${RELENGAPI_TOKEN+HIDDEN}
: NEED_XVFB ${NEED_XVFB:=false}
: MH_CUSTOM_BUILD_VARIANT_CFG ${MH_CUSTOM_BUILD_VARIANT_CFG}
: MH_BRANCH ${MH_BRANCH:=mozilla-central}
: MH_BUILD_POOL ${MH_BUILD_POOL:=staging}
: WORKSPACE ${WORKSPACE:=/home/worker/workspace}
# files to be "uploaded" (moved to ~/artifacts) from obj-firefox/dist
: DIST_UPLOADS ${DIST_UPLOADS:=""}
# files which will be be prefixed with target before being sent to artifacts
# e.g. DIST_TARGET_UPLOADS="a.zip" runs mv v2.0.a.zip mv artifacts/target.a.zip
: DIST_TARGET_UPLOADS ${DIST_TARGET_UPLOADS:=""}
set -v
# Don't run the upload step; this is passed through mozharness to mach. Once
# the mozharness scripts are not run in Buildbot anymore, this can be moved to
# Mozharness (or the upload step removed from mach entirely)
export MOZ_AUTOMATION_UPLOAD=0
export MOZ_CRASHREPORTER_NO_REPORT=1
export MOZ_OBJDIR=obj-firefox
export MOZ_SYMBOLS_EXTRA_BUILDID=linux64
export POST_SYMBOL_UPLOAD_CMD=/usr/local/bin/post-symbol-upload.py
export TINDERBOX_OUTPUT=1
# Ensure that in tree libraries can be found
export LIBRARY_PATH=$LIBRARY_PATH:$WORKSPACE/src/obj-firefox:$WORKSPACE/src/gcc/lib64
# test required parameters are supplied
if [[ -z ${MOZHARNESS_SCRIPT} ]]; then exit 1; fi
if [[ -z ${MOZHARNESS_CONFIG} ]]; then exit 1; fi
cleanup() {
if [ -n "$xvfb_pid" ]; then
kill $xvfb_pid || true
fi
}
trap cleanup EXIT INT
# run mozharness in XVfb, if necessary; this is an array to maintain the quoting in the -s argument
if $NEED_XVFB; then
# Some mozharness scripts set DISPLAY=:2
Xvfb :2 -screen 0 1024x768x24 &
export DISPLAY=:2
xvfb_pid=$!
# Only error code 255 matters, because it signifies that no
# display could be opened. As long as we can open the display
# tests should work. We'll retry a few times with a sleep before
# failing.
retry_count=0
max_retries=2
xvfb_test=0
until [ $retry_count -gt $max_retries ]; do
xvinfo || xvfb_test=$?
if [ $xvfb_test != 255 ]; then
retry_count=$(($max_retries + 1))
else
retry_count=$(($retry_count + 1))
echo "Failed to start Xvfb, retry: $retry_count"
sleep 2
fi done
if [ $xvfb_test == 255 ]; then exit 255; fi
fi
# set up mozharness configuration, via command line, env, etc.
debug_flag=""
if [ 0$DEBUG -ne 0 ]; then
debug_flag='--debug'
fi
custom_build_variant_cfg_flag=""
if [ -n "${MH_CUSTOM_BUILD_VARIANT_CFG}" ]; then
custom_build_variant_cfg_flag="--custom-build-variant-cfg=${MH_CUSTOM_BUILD_VARIANT_CFG}"
fi
set +x
# mozharness scripts look for the relengapi token at this location, so put it there,
# if specified
if [ -n "${RELENGAPI_TOKEN}" ]; then
echo 'Storing $RELENGAPI_TOKEN in /builds/relengapi.tok'
echo ${RELENGAPI_TOKEN} > /builds/relengapi.tok
# unset it so that mozharness doesn't "helpfully" log it
unset RELENGAPI_TOKEN
fi
set -x
# $TOOLTOOL_CACHE bypasses mozharness completely and is read by tooltool_wrapper.sh to set the
# cache. However, only some mozharness scripts use tooltool_wrapper.sh, so this may not be
# entirely effective.
export TOOLTOOL_CACHE
# support multiple, space delimited, config files
config_cmds=""
for cfg in $MOZHARNESS_CONFIG; do
config_cmds="${config_cmds} --config ${cfg}"
done
# Mozharness would ordinarily do the checkouts itself, but they are disabled
# here (--no-checkout-sources, --no-clone-tools) as the checkout is performed above.
./${MOZHARNESS_SCRIPT} ${config_cmds} \
$debug_flag \
$custom_build_variant_cfg_flag \
--disable-mock \
--no-setup-mock \
--no-checkout-sources \
--no-clone-tools \
--no-clobber \
--no-update \
--no-upload-files \
--no-sendchange \
--log-level=debug \
--work-dir=$WORKSPACE/build \
--no-action=generate-build-stats \
--branch=${MH_BRANCH} \
--build-pool=${MH_BUILD_POOL}
mkdir -p /home/worker/artifacts
# upload auxiliary files
cd $WORKSPACE/build/src/obj-firefox/dist
for file in $DIST_UPLOADS
do
mv $file $HOME/artifacts/$file
done
# Discard version numbers from packaged files, they just make it hard to write
# the right filename in the task payload where artifacts are declared
for file in $DIST_TARGET_UPLOADS
do
mv *.$file $HOME/artifacts/target.$file
done