1*a24ffb47SSadaf Ebrahimi#!/bin/bash 2*a24ffb47SSadaf Ebrahimi 3*a24ffb47SSadaf Ebrahimi# This file is used for Linux builds. 4*a24ffb47SSadaf Ebrahimi# It expects TASK environment variable is defined. 5*a24ffb47SSadaf Ebrahimi# To run locally: 6*a24ffb47SSadaf Ebrahimi# ./buildscripts/kokoro/linux.sh 7*a24ffb47SSadaf Ebrahimi 8*a24ffb47SSadaf Ebrahimi# This script assumes `set -e`. Removing it may lead to undefined behavior. 9*a24ffb47SSadaf Ebrahimiset -exu -o pipefail 10*a24ffb47SSadaf Ebrahimi 11*a24ffb47SSadaf Ebrahimi# It would be nicer to use 'readlink -f' here but osx does not support it. 12*a24ffb47SSadaf Ebrahimireadonly OPENCENSUS_JAVA_DIR="$(cd "$(dirname "$0")"/../.. && pwd)" 13*a24ffb47SSadaf Ebrahimi 14*a24ffb47SSadaf Ebrahimi# cd to the root dir of opencensus-java 15*a24ffb47SSadaf Ebrahimicd $(dirname $0)/../.. 16*a24ffb47SSadaf Ebrahimi 17*a24ffb47SSadaf Ebrahimivalid_tasks() { 18*a24ffb47SSadaf Ebrahimi echo "Valid tasks are" 19*a24ffb47SSadaf Ebrahimi echo "" 20*a24ffb47SSadaf Ebrahimi echo "- BUILD" 21*a24ffb47SSadaf Ebrahimi echo "- BUILD_EXAMPLES_GRADLE" 22*a24ffb47SSadaf Ebrahimi echo "- BUILD_EXAMPLES_MAVEN" 23*a24ffb47SSadaf Ebrahimi echo "- CHECKER_FRAMEWORK" 24*a24ffb47SSadaf Ebrahimi echo "- CHECK_GIT_HISTORY" 25*a24ffb47SSadaf Ebrahimi} 26*a24ffb47SSadaf Ebrahimi 27*a24ffb47SSadaf Ebrahimiif [[ ! -v TASK ]]; then 28*a24ffb47SSadaf Ebrahimi set +x 29*a24ffb47SSadaf Ebrahimi echo "TASK not set in environment" 30*a24ffb47SSadaf Ebrahimi valid_tasks 31*a24ffb47SSadaf Ebrahimi exit 1 32*a24ffb47SSadaf Ebrahimifi 33*a24ffb47SSadaf Ebrahimi 34*a24ffb47SSadaf Ebrahimicase "$TASK" in 35*a24ffb47SSadaf Ebrahimi "CHECK_GIT_HISTORY") 36*a24ffb47SSadaf Ebrahimi python ./buildscripts/check-git-history.py 37*a24ffb47SSadaf Ebrahimi ;; 38*a24ffb47SSadaf Ebrahimi "BUILD") 39*a24ffb47SSadaf Ebrahimi ./gradlew clean assemble --stacktrace 40*a24ffb47SSadaf Ebrahimi ./gradlew check :opencensus-all:jacocoTestReport 41*a24ffb47SSadaf Ebrahimi ./gradlew verGJF 42*a24ffb47SSadaf Ebrahimi 43*a24ffb47SSadaf Ebrahimi # Run codecoverage reporting only if the script is running 44*a24ffb47SSadaf Ebrahimi # as a part of KOKORO BUILD. If it is outside of kokoro 45*a24ffb47SSadaf Ebrahimi # then there is no access to the codecov token and hence 46*a24ffb47SSadaf Ebrahimi # there is no point in running it. 47*a24ffb47SSadaf Ebrahimi if [[ -v KOKORO_BUILD_NUMBER ]]; then 48*a24ffb47SSadaf Ebrahimi # Get token from file located at 49*a24ffb47SSadaf Ebrahimi # $KOKORO_KEYSTORE_DIR/73495_codecov-auth-token 50*a24ffb47SSadaf Ebrahimi if [ -f $KOKORO_KEYSTORE_DIR/73495_codecov-auth-token ] ; then 51*a24ffb47SSadaf Ebrahimi curl -s https://codecov.io/bash | bash -s -- -Z -t @$KOKORO_KEYSTORE_DIR/73495_codecov-auth-token 52*a24ffb47SSadaf Ebrahimi else 53*a24ffb47SSadaf Ebrahimi echo "Codecov token file not found" 54*a24ffb47SSadaf Ebrahimi exit 1 55*a24ffb47SSadaf Ebrahimi fi 56*a24ffb47SSadaf Ebrahimi else 57*a24ffb47SSadaf Ebrahimi echo "Skipping codecov reporting" 58*a24ffb47SSadaf Ebrahimi fi 59*a24ffb47SSadaf Ebrahimi ;; 60*a24ffb47SSadaf Ebrahimi "CHECKER_FRAMEWORK") 61*a24ffb47SSadaf Ebrahimi ./gradlew clean assemble -PcheckerFramework=true 62*a24ffb47SSadaf Ebrahimi ;; 63*a24ffb47SSadaf Ebrahimi "BUILD_EXAMPLES_GRADLE") 64*a24ffb47SSadaf Ebrahimi pushd examples && ./gradlew clean assemble --stacktrace && ./gradlew check && ./gradlew verGJF && popd 65*a24ffb47SSadaf Ebrahimi ;; 66*a24ffb47SSadaf Ebrahimi "BUILD_EXAMPLES_MAVEN") 67*a24ffb47SSadaf Ebrahimi pushd examples && mvn clean package appassembler:assemble -e && popd 68*a24ffb47SSadaf Ebrahimi ;; 69*a24ffb47SSadaf Ebrahimi *) 70*a24ffb47SSadaf Ebrahimi set +x 71*a24ffb47SSadaf Ebrahimi echo "Unknown task $TASK" 72*a24ffb47SSadaf Ebrahimi valid_tasks 73*a24ffb47SSadaf Ebrahimi exit 1 74*a24ffb47SSadaf Ebrahimi ;; 75*a24ffb47SSadaf Ebrahimiesac 76