xref: /aosp_15_r20/external/google-cloud-java/.kokoro/build.sh (revision 55e87721aa1bc457b326496a7ca40f3ea1a63287)
1*55e87721SMatt Gilbride#!/bin/bash
2*55e87721SMatt Gilbride# Copyright 2019 Google LLC
3*55e87721SMatt Gilbride#
4*55e87721SMatt Gilbride# Licensed under the Apache License, Version 2.0 (the "License");
5*55e87721SMatt Gilbride# you may not use this file except in compliance with the License.
6*55e87721SMatt Gilbride# You may obtain a copy of the License at
7*55e87721SMatt Gilbride#
8*55e87721SMatt Gilbride#      http://www.apache.org/licenses/LICENSE-2.0
9*55e87721SMatt Gilbride#
10*55e87721SMatt Gilbride# Unless required by applicable law or agreed to in writing, software
11*55e87721SMatt Gilbride# distributed under the License is distributed on an "AS IS" BASIS,
12*55e87721SMatt Gilbride# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*55e87721SMatt Gilbride# See the License for the specific language governing permissions and
14*55e87721SMatt Gilbride# limitations under the License.
15*55e87721SMatt Gilbride
16*55e87721SMatt Gilbrideset -eo pipefail
17*55e87721SMatt Gilbride
18*55e87721SMatt Gilbride## Get the directory of the build script
19*55e87721SMatt GilbridescriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}"))
20*55e87721SMatt Gilbride## cd to the parent directory, i.e. the root of the git repo
21*55e87721SMatt Gilbridecd ${scriptDir}/..
22*55e87721SMatt Gilbride
23*55e87721SMatt Gilbride# include common functions
24*55e87721SMatt Gilbridesource ${scriptDir}/common.sh
25*55e87721SMatt Gilbride
26*55e87721SMatt Gilbride# Use GCP Maven Mirror
27*55e87721SMatt Gilbridemkdir -p ${HOME}/.m2
28*55e87721SMatt Gilbridecp settings.xml ${HOME}/.m2
29*55e87721SMatt Gilbride
30*55e87721SMatt Gilbridesetup_application_credentials
31*55e87721SMatt Gilbride
32*55e87721SMatt Gilbrideif [ -f "${KOKORO_GFILE_DIR}/secret_manager/java-bigqueryconnection-samples-secrets" ]; then
33*55e87721SMatt Gilbride  source "${KOKORO_GFILE_DIR}/secret_manager/java-bigqueryconnection-samples-secrets"
34*55e87721SMatt Gilbridefi
35*55e87721SMatt Gilbride
36*55e87721SMatt GilbrideRETURN_CODE=0
37*55e87721SMatt Gilbride
38*55e87721SMatt Gilbridecase ${JOB_TYPE} in
39*55e87721SMatt Gilbride  test)
40*55e87721SMatt Gilbride    retry_with_backoff 3 10 \
41*55e87721SMatt Gilbride      mvn -B -ntp \
42*55e87721SMatt Gilbride      -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss:SSS \
43*55e87721SMatt Gilbride      -Dclirr.skip=true \
44*55e87721SMatt Gilbride      -Denforcer.skip=true \
45*55e87721SMatt Gilbride      -Dcheckstyle.skip=true \
46*55e87721SMatt Gilbride      -Dflatten.skip=true \
47*55e87721SMatt Gilbride      -Danimal.sniffer.skip=true \
48*55e87721SMatt Gilbride      -Dmaven.wagon.http.retryHandler.count=5 \
49*55e87721SMatt Gilbride      -T 1C \
50*55e87721SMatt Gilbride      test
51*55e87721SMatt Gilbride    RETURN_CODE=$?
52*55e87721SMatt Gilbride    echo "Finished running unit tests"
53*55e87721SMatt Gilbride    ;;
54*55e87721SMatt Gilbride  integration)
55*55e87721SMatt Gilbride    generate_modified_modules_list
56*55e87721SMatt Gilbride    if [[ ${#modified_module_list[@]} -gt 0 ]]; then
57*55e87721SMatt Gilbride      module_list=$(
58*55e87721SMatt Gilbride        IFS=,
59*55e87721SMatt Gilbride        echo "${modified_module_list[*]}"
60*55e87721SMatt Gilbride      )
61*55e87721SMatt Gilbride      setup_cloud "$module_list"
62*55e87721SMatt Gilbride      install_modules
63*55e87721SMatt Gilbride      run_integration_tests "$module_list"
64*55e87721SMatt Gilbride    else
65*55e87721SMatt Gilbride      echo "No Integration Tests to run"
66*55e87721SMatt Gilbride    fi
67*55e87721SMatt Gilbride    ;;
68*55e87721SMatt Gilbride  graalvm-presubmit)
69*55e87721SMatt Gilbride    if [ -z "${MAVEN_MODULES}" ]; then
70*55e87721SMatt Gilbride      echo "MAVEN_MODULES not defined in environment."
71*55e87721SMatt Gilbride      exit 1
72*55e87721SMatt Gilbride    fi
73*55e87721SMatt Gilbride    printf "Running GraalVM checks for:\n%s\n" "${MAVEN_MODULES}"
74*55e87721SMatt Gilbride    setup_cloud "$MAVEN_MODULES"
75*55e87721SMatt Gilbride    install_modules
76*55e87721SMatt Gilbride    run_graalvm_tests "$MAVEN_MODULES"
77*55e87721SMatt Gilbride    ;;
78*55e87721SMatt Gilbride  graalvm)
79*55e87721SMatt Gilbride    generate_graalvm_modules_list
80*55e87721SMatt Gilbride    if [ ! -z "${module_list}" ]; then
81*55e87721SMatt Gilbride      printf "Running GraalVM checks for:\n%s\n" "${module_list}"
82*55e87721SMatt Gilbride      setup_cloud "$module_list"
83*55e87721SMatt Gilbride      install_modules
84*55e87721SMatt Gilbride      run_graalvm_tests "$module_list"
85*55e87721SMatt Gilbride    else
86*55e87721SMatt Gilbride      echo "Not running GraalVM checks -- No changes in relevant modules"
87*55e87721SMatt Gilbride    fi
88*55e87721SMatt Gilbride    ;;
89*55e87721SMatt Gilbride  graalvm17)
90*55e87721SMatt Gilbride    generate_graalvm_modules_list
91*55e87721SMatt Gilbride    if [ ! -z "${module_list}" ]; then
92*55e87721SMatt Gilbride      printf "Running GraalVM 17 checks for:\n%s\n" "${module_list}"
93*55e87721SMatt Gilbride      setup_cloud "$module_list"
94*55e87721SMatt Gilbride      install_modules
95*55e87721SMatt Gilbride      run_graalvm_tests "$module_list"
96*55e87721SMatt Gilbride    else
97*55e87721SMatt Gilbride      echo "Not running GraalVM 17 checks -- No changes in relevant modules"
98*55e87721SMatt Gilbride    fi
99*55e87721SMatt Gilbride    ;;
100*55e87721SMatt Gilbride  *) ;;
101*55e87721SMatt Gilbride
102*55e87721SMatt Gilbrideesac
103*55e87721SMatt Gilbride
104*55e87721SMatt Gilbrideif [ "${REPORT_COVERAGE}" == "true" ]; then
105*55e87721SMatt Gilbride  bash ${KOKORO_GFILE_DIR}/codecov.sh
106*55e87721SMatt Gilbridefi
107*55e87721SMatt Gilbride
108*55e87721SMatt Gilbride# fix output location of logs
109*55e87721SMatt Gilbridebash .kokoro/coerce_logs.sh
110*55e87721SMatt Gilbride
111*55e87721SMatt Gilbrideif [[ "${ENABLE_FLAKYBOT}" == "true" ]]; then
112*55e87721SMatt Gilbride  chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot
113*55e87721SMatt Gilbride  ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/google-cloud-java
114*55e87721SMatt Gilbridefi
115*55e87721SMatt Gilbride
116*55e87721SMatt Gilbrideecho "exiting with ${RETURN_CODE}"
117*55e87721SMatt Gilbrideexit ${RETURN_CODE}
118