diff --git a/.circleci/config.yml b/.circleci/config.yml index b068587273..95184b15ed 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,6 +6,8 @@ init_task: &init_task build_task: &build_task name: Build command: make test-with-docker + # For slow build if cache is cleared + no_output_timeout: 60m compile_benchmark_task: &compile_benchmark_task name: Compile JMH command: make benchmark @@ -28,8 +30,9 @@ jobs: # Configure the JVM and Gradle to avoid OOM errors _JAVA_OPTIONS: "-Xmx1g" GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2" + ORG_GRADLE_PROJECT_testAdditionalJavaVersions: true docker: - - image: circleci/openjdk:8-jdk + - image: circleci/openjdk:11.0.6-jdk-buster steps: - checkout - restore_cache: @@ -56,32 +59,6 @@ jobs: paths: - ~/.gradle key: gradle-{{ checksum "build.gradle" }} - java11: - environment: - # Configure the JVM and Gradle to avoid OOM errors - _JAVA_OPTIONS: "-Xmx3g" - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2" - docker: - - image: circleci/openjdk:11.0.6-jdk-buster - steps: - - checkout - - restore_cache: - keys: - - java11-gradle-{{ checksum "build.gradle" }} -# make in missing in openjdk:9-jdk image - - run: sudo apt-get update && sudo apt-get install -y make - - run: - <<: *init_task - - run: - <<: *verify_task - - run: - <<: *build_task - - run: - <<: *compile_benchmark_task - - save_cache: - paths: - - ~/.gradle - key: java11-gradle-{{ checksum "build.gradle" }} # Publish the released artifacts using the `build` job env. release_job: environment: @@ -113,4 +90,3 @@ workflows: build_and_test: jobs: - build - - java11 diff --git a/.github/workflows/continuous-build.yml b/.github/workflows/continuous-build.yml index 6fb00237aa..602bffdfac 100644 --- a/.github/workflows/continuous-build.yml +++ b/.github/workflows/continuous-build.yml @@ -17,29 +17,32 @@ jobs: os: - macos-latest - ubuntu-latest - - windows-latest - java: - # Test all OS's with Java 11 - - 11 include: - os: ubuntu-latest - java: 11 + testAdditionalJavaVersions: true coverage: true - - os: ubuntu-latest - java: 8 steps: - uses: actions/checkout@v2 with: submodules: true - - uses: actions/setup-java@v1 + - id: setup-java-8 + name: Setup Java 8 + uses: actions/setup-java@v1 with: - java-version: ${{ matrix.java }} + java-version: 8 + java-package: jre + - id: setup-java-11 + name: Setup Java 11 + uses: actions/setup-java@v1 + with: + java-version: 11 - uses: burrunan/gradle-cache-action@v1.5 with: - job-id: jdk${{ matrix.java }} remote-build-cache-proxy-enabled: false arguments: check --stacktrace ${{ matrix.coverage && ':opentelemetry-all:jacocoTestReport' || '' }} properties: | + testAdditionalJavaVersions=${{ matrix.testAdditionalJavaVersions }} enable.docker.tests=${{ matrix.os == 'ubuntu-latest' }} + org.gradle.java.installations.paths=${{ steps.setup-java-8.outputs.path }},${{ steps.setup-java-11.outputs.path }} - uses: codecov/codecov-action@v1 if: ${{ matrix.coverage }} diff --git a/build.gradle b/build.gradle index dcdc217c78..758e5fdb86 100644 --- a/build.gradle +++ b/build.gradle @@ -169,15 +169,32 @@ configure(opentelemetryProjects) { mavenLocal() } - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - java { + toolchain { + languageVersion = JavaLanguageVersion.of(11) + } + withJavadocJar() withSourcesJar() } + tasks { + def testJava8 = register('testJava8', Test) { + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(8) + } + + jacoco.enabled = false + } + + if (rootProject.findProperty('testAdditionalJavaVersions') == 'true') { + check.dependsOn(testJava8) + } + } + tasks.withType(JavaCompile) { + it.options.release = 8 + it.options.compilerArgs += [ "-Xlint:all", // We suppress the "try" warning because it disallows managing an auto-closeable with @@ -370,15 +387,10 @@ configure(opentelemetryProjects) { // The ErrorProne plugin defaults to the latest, which would break our // build if error prone releases a new version with a new check errorprone libraries.errorprone_core - if (!JavaVersion.current().isJava9Compatible()) { - errorproneJavac libraries.errorprone_javac - } - if (JavaVersion.current().isJava9Compatible()) { - // Workaround for @javax.annotation.Generated - // see: https://github.com/grpc/grpc-java/issues/3633 - compileOnly libraries.javax_annotations - } + // Workaround for @javax.annotation.Generated + // see: https://github.com/grpc/grpc-java/issues/3633 + compileOnly libraries.javax_annotations } tasks.withType(Test) { @@ -465,8 +477,7 @@ configure(opentelemetryProjects) { } wrapper { - distributionType = Wrapper.DistributionType.ALL - gradleVersion = '6.6' + gradleVersion = '6.7' } tasks.register("updateVersionInDocs") { diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties index bca17f3656..2dfd4cd040 100644 --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip +distributionSha256Sum=8ad57759019a9233dc7dc4d1a530cefe109dc122000d57f7e623f8cf4ba9dfc4 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index bca17f3656..2dfd4cd040 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip +distributionSha256Sum=8ad57759019a9233dc7dc4d1a530cefe109dc122000d57f7e623f8cf4ba9dfc4 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists