From dc4f527f8f3815da386b93c2972c727f047dc384 Mon Sep 17 00:00:00 2001 From: Matthew Tovbin Date: Mon, 1 Oct 2018 10:03:50 -0700 Subject: [PATCH] Use OpenJDK8 for CircleCI builds + refactor build config (#140) --- .circleci/config.yml | 87 ++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1891a16b17..09b6b95360 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,51 +1,58 @@ version: 2 +machine-config: &machine-config + machine: true + working_directory: ~/repo + environment: + TERM: dumb + GRADLE_OPTS: -Xmx256m + +shared-steps: + open-jdk: &open-jdk + run: + name: Update Java to OpenJDK + command: | + sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java + sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac + export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 + java -version + save-gradle-cache: &save-gradle-cache + save_cache: + key: gcache-{{ .Branch }}-{{ checksum ".circleci/config.yml" }}-{{ checksum "build.gradle" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + paths: + - ~/.gradle + - ~/.m2 + restore-gradle-cache: &restore-gradle-cache + restore_cache: + keys: + - gcache-{{ .Branch }}-{{ checksum ".circleci/config.yml" }}-{{ checksum "build.gradle" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + jobs: - scala_style_check: - machine: true - working_directory: ~/repo - environment: - TERM: dumb - GRADLE_OPTS: -Xmx256m + scala-style: + <<: *machine-config steps: - checkout + - *open-jdk - run: name: Scala style check - command: ./gradlew --parallel scalaStyle - clone_repo_and_compile_project: - machine: true - working_directory: ~/repo - environment: - TERM: dumb - GRADLE_OPTS: -Xmx256m + command: java -version && ./gradlew -v && ./gradlew --parallel scalaStyle + compile: + <<: *machine-config steps: - checkout - - restore_cache: - keys: - - gcache-{{ .Branch }}-{{ checksum ".circleci/config.yml" }}-{{ checksum "build.gradle" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - - run: - name: Java version - command: java -version + - *open-jdk + - *restore-gradle-cache - run: name: Clone repo & compile project - command: ./gradlew --parallel testScoverageClasses - - save_cache: - key: gcache-{{ .Branch }}-{{ checksum ".circleci/config.yml" }}-{{ checksum "build.gradle" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - paths: - - ~/.gradle - - ~/.m2 - build: - machine: true - working_directory: ~/repo - environment: - TERM: dumb - GRADLE_OPTS: -Xmx256m + command: java -version && ./gradlew -v && ./gradlew --parallel testScoverageClasses + - *save-gradle-cache + test: + <<: *machine-config parallelism: 4 steps: - checkout - - restore_cache: - keys: - - gcache-{{ .Branch }}-{{ checksum ".circleci/config.yml" }}-{{ checksum "build.gradle" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - *open-jdk + - *restore-gradle-cache - run: name: Build project command: | @@ -55,7 +62,7 @@ jobs: TEST_FILES=$(echo "$TEST_FILES" | circleci tests split --split-by=timings --timings-type=classname --index=$CIRCLE_NODE_INDEX | tr ' ' '\n' | cut -d "/" -f5-$2 | sed 's/.\{6\}$/\*/g') echo -e "Test files running on this container : `eval $COUNT_TEST_FILE_CMD`\n$TEST_FILES\n" export TEST_FILES=$(echo "$TEST_FILES" | sed 's/\\n$//' ) - ./gradlew reportScoverage + java -version && ./gradlew -v && ./gradlew reportScoverage - run: name: Collect test results command: | @@ -76,9 +83,9 @@ workflows: version: 2 build: jobs: - - scala_style_check - - clone_repo_and_compile_project - - build: + - scala-style + - compile + - test: requires: - - scala_style_check - - clone_repo_and_compile_project + - scala-style + - compile