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