taskcluster/scripts/builder/build-haz-linux.sh
author Jonathan Griffin <jgriffin@mozilla.com>
Mon, 27 Jun 2016 14:51:41 -0700
changeset 381598 bfc80e894d58737be5a60c1aec45039c22c73741
parent 376852 d503738745c7637beb31d420d211e550d3c309b6
child 381904 7bcb335a9bc5bbbe6f7cdf5f8d507ebdb04ddf95
permissions -rwxr-xr-x
Bug 1277957 - Point to tooltool at GitHub, r=dustin MozReview-Commit-ID: DniWWGVlOiL

#!/bin/bash -ex

PROJECT=shell
if [[ "$1" == "--project" ]]; then
    shift
    PROJECT="$1"
    shift
fi

# Ensure all the scripts in this dir are on the path....
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PATH=$DIRNAME:$PATH

WORKSPACE=$( cd "$1" && pwd )
shift

SCRIPT_FLAGS="$*"

# Use GECKO_BASE_REPOSITORY as a signal for whether we are running in automation.
export AUTOMATION=${GECKO_BASE_REPOSITORY:+1}

: ${GECKO_DIR:=$WORKSPACE/gecko}
: ${TOOLTOOL_MANIFEST:=browser/config/tooltool-manifests/linux64/hazard.manifest}
: ${TOOLTOOL_CACHE:=$WORKSPACE/tt-cache}
: ${TOOLTOOL_REPO:=https://github.com/mozilla/build-tooltool.git}

if ! [ -d $GECKO_DIR ]; then
    echo "GECKO_DIR must be set to a directory containing a gecko source checkout" >&2
    exit 1
fi
GECKO_DIR=$( cd "$GECKO_DIR" && pwd )

# Directory to populate with tooltool-installed tools
export TOOLTOOL_DIR="$WORKSPACE"

# Directory to hold the (useless) object files generated by the analysis.
export MOZ_OBJDIR="$WORKSPACE/obj-analyzed"
mkdir -p "$MOZ_OBJDIR"

tc-vcs checkout --force-clone $WORKSPACE/tooltool $TOOLTOOL_REPO $TOOLTOOL_REPO $TOOLTOOL_REV
( cd $TOOLTOOL_DIR; python $WORKSPACE/tooltool/tooltool.py --url https://api.pub.build.mozilla.org/tooltool/ -m $GECKO_DIR/$TOOLTOOL_MANIFEST fetch -c $TOOLTOOL_CACHE )

if [[ "$PROJECT" = "browser" ]]; then (
    cd "$WORKSPACE"
    . setup-ccache.sh
    # Mozbuild config:
    export MOZBUILD_STATE_PATH=$WORKSPACE/mozbuild/
    # Create .mozbuild so mach doesn't complain about this
    mkdir -p $MOZBUILD_STATE_PATH
) fi
. hazard-analysis.sh

build_js_shell

# Artifacts folder is outside of the cache.
mkdir -p $HOME/artifacts/ || true

function onexit () {
    grab_artifacts "$WORKSPACE/analysis" "$HOME/artifacts"
}

trap onexit EXIT

configure_analysis "$WORKSPACE/analysis"
run_analysis "$WORKSPACE/analysis" "$PROJECT"

check_hazards "$WORKSPACE/analysis"

################################### script end ###################################