| #!/bin/bash |
| |
| # This file is used for Linux builds. |
| # It expects TASK environment variable is defined. |
| # To run locally: |
| # ./buildscripts/kokoro/linux.sh |
| |
| # This script assumes `set -e`. Removing it may lead to undefined behavior. |
| set -exu -o pipefail |
| |
| # It would be nicer to use 'readlink -f' here but osx does not support it. |
| readonly OPENCENSUS_JAVA_DIR="$(cd "$(dirname "$0")"/../.. && pwd)" |
| |
| # cd to the root dir of opencensus-java |
| cd $(dirname $0)/../.. |
| |
| valid_tasks() { |
| echo "Valid tasks are" |
| echo "" |
| echo "- BUILD" |
| echo "- BUILD_EXAMPLES_BAZEL" |
| echo "- BUILD_EXAMPLES_GRADLE" |
| echo "- BUILD_EXAMPLES_MAVEN" |
| echo "- CHECKER_FRAMEWORK" |
| echo "- CHECK_EXAMPLES_FORMAT" |
| echo "- CHECK_EXAMPLES_LICENSE" |
| echo "- CHECK_GIT_HISTORY" |
| } |
| |
| if [[ ! -v TASK ]]; then |
| set +x |
| echo "TASK not set in environment" |
| valid_tasks |
| exit 1 |
| fi |
| |
| case "$TASK" in |
| "CHECK_GIT_HISTORY") |
| python ./scripts/check-git-history.py |
| ;; |
| "BUILD") |
| ./gradlew clean assemble --stacktrace |
| ./gradlew check :opencensus-all:jacocoTestReport |
| ./gradlew verGJF |
| |
| # Run codecoverage reporting only if the script is running |
| # as a part of KOKORO BUILD. If it is outside of kokoro |
| # then there is no access to the codecov token and hence |
| # there is no point in running it. |
| if [[ -v KOKORO_BUILD_NUMBER ]]; then |
| # Get token from file located at |
| # $KOKORO_KEYSTORE_DIR/73495_codecov-auth-token |
| if [ -f $KOKORO_KEYSTORE_DIR/73495_codecov-auth-token ] ; then |
| curl -s https://codecov.io/bash | bash -s -- -Z -t @$KOKORO_KEYSTORE_DIR/73495_codecov-auth-token |
| else |
| echo "Codecov token file not found" |
| exit 1 |
| fi |
| else |
| echo "Skipping codecov reporting" |
| fi |
| ;; |
| "CHECKER_FRAMEWORK") |
| ./gradlew clean assemble -PcheckerFramework=true |
| ;; |
| "CHECK_EXAMPLES_LICENSE") |
| curl -L -o checkstyle-8.12-all.jar https://github.com/checkstyle/checkstyle/releases/download/checkstyle-8.12/checkstyle-8.12-all.jar |
| java -DrootDir=. -jar checkstyle-8.12-all.jar -c buildscripts/checkstyle.xml examples/src/ |
| ;; |
| "CHECK_EXAMPLES_FORMAT") |
| curl -L -o google-java-format-1.5-all-deps.jar \ |
| https://github.com/google/google-java-format/releases/download/google-java-format-1.5/google-java-format-1.5-all-deps.jar |
| java -jar google-java-format-1.5-all-deps.jar --set-exit-if-changed --dry-run `find examples/src/ -name '*.java'` |
| ;; |
| "BUILD_EXAMPLES_GRADLE") |
| pushd examples && ./gradlew clean assemble --stacktrace && popd |
| ;; |
| "BUILD_EXAMPLES_MAVEN") |
| pushd examples && mvn clean package appassembler:assemble -e && popd |
| ;; |
| "BUILD_EXAMPLES_BAZEL") |
| pushd examples && bazel clean && bazel build :all && popd |
| ;; |
| *) |
| set +x |
| echo "Unknown task $TASK" |
| valid_tasks |
| exit 1 |
| ;; |
| esac |