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