webview_buildbot_functions.sh revision 906c63fedd69124511a31d3b54cabf147e739dbc
1151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# Copyright (C) 2012 The Android Open Source Project 2151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# 3151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# Licensed under the Apache License, Version 2.0 (the "License"); 4151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# you may not use this file except in compliance with the License. 5151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# You may obtain a copy of the License at 6151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# 7151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# http://www.apache.org/licenses/LICENSE-2.0 8151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# 9151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# Unless required by applicable law or agreed to in writing, software 10151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# distributed under the License is distributed on an "AS IS" BASIS, 11151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# See the License for the specific language governing permissions and 13151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# limitations under the License. 14151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 15151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandrafunction bb_webview_set_lunch_type() { 16151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra case "$1" in 17151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra clank-webview) 18151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra LUNCH_TYPE="nakasi-eng" 19151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra ;; 20151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra clank-webview-tot) 21151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra LUNCH_TYPE="nakasi-eng" 22151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra ;; 23151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra *) 24151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra LUNCH_TYPE="" 25151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "Unable to determine lunch type from: ${BUILDBOT_BUILDERNAME}" 26151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "@@@STEP_FAILURE@@@" 27151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra exit 1 28151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra ;; 29151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra esac 30151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "Using lunch type: $LUNCH_TYPE" 31151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra} 32151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 33151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandrafunction bb_webview_build_android() { 34151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "@@@BUILD_STEP Compile Android@@@" 35151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 36151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra local MAKE_COMMAND="make" 37151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra if [ "$USE_GOMA" -eq 1 ]; then 38151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "Building using GOMA" 39151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra MAKE_COMMAND="${GOMA_DIR}/goma-android-make" 40151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra fi 41151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 42151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra bb_run_step $MAKE_COMMAND $MAKE_PARAMS showcommands 43151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 44151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra if [ "$USE_GOMA" -eq 1 ]; then 45151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra bb_stop_goma_internal 46151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra fi 47151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra} 48151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 49151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandrafunction bb_webview_goma_setup() { 50151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra # Set to 0 to disable goma in case of problems. 51151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra USE_GOMA=1 52151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra if [ -z "$GOMA_DIR" ]; then 53151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra export GOMA_DIR=/b/build/goma 54151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra fi 55151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra if [ ! -d $GOMA_DIR ]; then 56151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra USE_GOMA=0 57151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra fi 58906c63fedd69124511a31d3b54cabf147e739dbcBo Liu 59906c63fedd69124511a31d3b54cabf147e739dbcBo Liu # TODO(boliu): Always do clobber build on tot as workaround for bison issue. 60906c63fedd69124511a31d3b54cabf147e739dbcBo Liu rm -rf ${ANDROID_SRC_ROOT}/out 61906c63fedd69124511a31d3b54cabf147e739dbcBo Liu 62151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra if [ "$USE_GOMA" -eq 1 ]; then 63151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra MAKE_PARAMS="-j150 -l20" 64151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra else 65151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra MAKE_PARAMS="-j16" 66151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra fi 67151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 68151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra bb_setup_goma_internal 69151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra} 70151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 71151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# Basic setup for all bots to run after a source tree checkout. 72151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# Args: 73151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra# $1: Android source root. 74151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandrafunction bb_webview_baseline_setup { 75151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra SRC_ROOT="$1" 76151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra cd $SRC_ROOT 77151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 78151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "@@@BUILD_STEP Environment setup@@@" 79151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra . build/envsetup.sh 80151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 81151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra bb_webview_set_lunch_type $BUILDBOT_BUILDERNAME 82151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra lunch $LUNCH_TYPE 83151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 84151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra if [[ $BUILDBOT_CLOBBER ]]; then 85151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "@@@BUILD_STEP Clobber@@@" 86151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 87151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra rm -rf ${ANDROID_PRODUCT_OUT} 88151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra rm -rf ${ANDROID_HOST_OUT} 89151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra fi 90151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 91151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra # Add the upstream build/android folder to the Python path. 92151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra # This is required since we don't want to check out the clank scripts into a 93151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra # subfolder of the upstream chromium_org checkout (that would make repo think 94151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra # those are uncommited changes and cause potential issues). 95151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra export PYTHONPATH="$PYTHONPATH:${BB_DIR}/../" 96151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 97151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra # The CTS bot runs using repo only. 98151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra export CHECKOUT="repo" 99151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 100151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra bb_webview_goma_setup 101151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra} 102151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 103151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandrafunction bb_webview_sync_and_merge { 104151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra WEBVIEW_TOOLS_DIR="${ANDROID_SRC_ROOT}/frameworks/webview/chromium/tools" 105151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 106151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "@@@BUILD_STEP Sync Chromium Repos@@@" 107151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra bb_run_step ${WEBVIEW_TOOLS_DIR}/sync_chromium_repos.sh 108151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra 109151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra echo "@@@BUILD_STEP Merge from Chromium@@@" 110151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra bb_run_step python ${WEBVIEW_TOOLS_DIR}/merge_from_chromium.py \ 111151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra --unattended \ 112151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra --svn_revision=HEAD 113151d96785dabd743c5e168c765bd4f13331f0b7fSiva Chandra} 114