Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use OpenJDK8 for CircleCI builds + refactor build config #140

Merged
merged 12 commits into from
Oct 1, 2018
87 changes: 47 additions & 40 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -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: |
Expand All @@ -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: |
Expand All @@ -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