blob: 1dc666034aa035ed15eaea7c0d24ce0b1a8bf990 [file] [log] [blame]
Dan Willemsen0df15172017-05-07 11:23:59 -07001#!/bin/bash -eu
2#
3# Copyright 2017 Google Inc. All rights reserved.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17#
18# This file is used in our continous build infrastructure to run a variety of
19# tests related to the build system.
20#
21# Currently, it's used to build and run multiproduct_kati, so it'll attempt
22# to build ninja files for every product in the tree. I expect this to
23# evolve as we find interesting things to test or track performance for.
24#
25
Anton Hansson785a31a2020-12-16 20:08:03 +000026# Products that are broken or otherwise don't work with multiproduct_kati
27SKIPPED_PRODUCTS=(
Anton Hanssonb850f842022-02-17 19:52:46 +000028 # Both of these products are for soong-only builds, and will fail the kati stage.
Anton Hansson785a31a2020-12-16 20:08:03 +000029 mainline_sdk
Anton Hanssonb850f842022-02-17 19:52:46 +000030 ndk
Anton Hansson785a31a2020-12-16 20:08:03 +000031)
32
Dan Willemsen0df15172017-05-07 11:23:59 -070033# To track how long we took to startup. %N isn't supported on Darwin, but
34# that's detected in the Go code, which skips calculating the startup time.
35export TRACE_BEGIN_SOONG=$(date +%s%N)
36
Dan Willemsen0abd4372018-10-15 22:06:54 -070037# Remove BUILD_NUMBER so that incremental builds on build servers don't
38# re-read makefiles every time.
39unset BUILD_NUMBER
40
Dan Willemsen0df15172017-05-07 11:23:59 -070041export TOP=$(cd $(dirname ${BASH_SOURCE[0]})/../..; PWD= /bin/pwd)
Jeff Gastone2128d32017-10-06 12:22:09 -070042cd "${TOP}"
Dan Willemsen91f9b542017-07-18 19:39:34 -070043source "${TOP}/build/soong/scripts/microfactory.bash"
Dan Willemsen0df15172017-05-07 11:23:59 -070044
Dan Willemsene7efcbe2017-06-20 23:27:45 -070045case $(uname) in
46 Linux)
47 export LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
Dan Willemsen89479fa2017-10-09 16:08:30 -070048 export SEGFAULT_USE_ALTSTACK=1
49 ulimit -a
Dan Willemsene7efcbe2017-06-20 23:27:45 -070050 ;;
51esac
52
Rupert Shuttleworth6284ceb2020-10-27 03:50:40 +000053echo
Lukacs T. Berki4070bcd2021-05-17 14:33:01 +020054echo "Free disk space:"
Cole Faustfa3431c2021-11-30 12:15:34 -080055# Ignore df errors because it errors out on gvfsd file systems
56# but still displays most of the useful info we need
57df -h || true
Lukacs T. Berki4070bcd2021-05-17 14:33:01 +020058
59echo
Rupert Shuttleworth6284ceb2020-10-27 03:50:40 +000060echo "Running Bazel smoke test..."
Jingwen Chen8c523582021-06-01 11:19:53 +000061STANDALONE_BAZEL=true "${TOP}/tools/bazel" --batch --max_idle_secs=1 info
Rupert Shuttleworth6284ceb2020-10-27 03:50:40 +000062
63echo
64echo "Running Soong test..."
Dan Willemsen91f9b542017-07-18 19:39:34 -070065soong_build_go multiproduct_kati android/soong/cmd/multiproduct_kati
Anton Hansson785a31a2020-12-16 20:08:03 +000066exec "$(getoutdir)/multiproduct_kati" --skip-products "$(echo "${SKIPPED_PRODUCTS[@]-}" | tr ' ' ',')" "$@"