forked from mirrors/gecko-dev
Recently the Chromium-as-Release linux builds started to fail and that is due to some changes upstream with the install-build-deps script. This patch instead updates the Dockerfile packages and removes the (currently) failing script call. Differential Revision: https://phabricator.services.mozilla.com/D177415
65 lines
1.7 KiB
Bash
Executable file
65 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
set -x -e -v
|
|
|
|
# This script is for building a custom version of chromium-as-release on Linux
|
|
|
|
# First argument must be the artifact name
|
|
ARTIFACT_NAME=$(basename $TOOLCHAIN_ARTIFACT)
|
|
shift
|
|
|
|
# Use the rest of the arguments as the build config
|
|
CONFIG=$(echo $* | tr -d "'")
|
|
|
|
|
|
mkdir custom_car
|
|
cd custom_car
|
|
CUSTOM_CAR_DIR=$PWD
|
|
|
|
# Setup depot_tools
|
|
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
|
export PATH=$PATH:$CUSTOM_CAR_DIR/depot_tools
|
|
|
|
|
|
# Get chromium source code and dependencies
|
|
mkdir chromium
|
|
cd chromium
|
|
fetch --no-history --nohooks chromium
|
|
|
|
# setup the .gclient file to ensure pgo profiles are downloaded
|
|
# for some reason we need to set --name flag even though it already exists.
|
|
# currently the gclient.py file does NOT recognize --custom-var as it's own argument
|
|
gclient config --name src "https://chromium.googlesource.com/chromium/src.git" --custom-var="checkout_pgo_profiles=True" --unmanaged
|
|
|
|
cd src
|
|
|
|
# now we can run hooks and fetch PGO + everything else
|
|
gclient runhooks
|
|
|
|
# PGO data should be in src/chrome/build/pgo_profiles/
|
|
# with a name like "chrome-{OS}-<some unique identifier>"
|
|
export PGO_DATA_DIR="$CUSTOM_CAR_DIR/chromium/src/chrome/build/pgo_profiles"
|
|
for entry in "$PGO_DATA_DIR"/*
|
|
do
|
|
if [ -f "$entry" ];then
|
|
export PGO_DATA_PATH="$entry"
|
|
fi
|
|
done
|
|
CONFIG=$(echo $CONFIG pgo_data_path='"'$PGO_DATA_PATH'"')
|
|
|
|
|
|
# set up then build chrome
|
|
gn gen out/Default --args="$CONFIG"
|
|
autoninja -C out/Default chrome # skips test binaries
|
|
|
|
|
|
# Gather binary and related files into a zip, and upload it
|
|
cd ..
|
|
mkdir chromium
|
|
|
|
mv src/out/Default chromium
|
|
chmod -R +x chromium
|
|
|
|
tar caf $ARTIFACT_NAME chromium
|
|
|
|
mkdir -p $UPLOAD_DIR
|
|
mv $ARTIFACT_NAME $UPLOAD_DIR
|