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