diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f46712b2646..3f30f430358 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,12 +39,15 @@ jobs: remainder: name: ${{ matrix.script }} on JDK ${{ matrix.java_version }} runs-on: ubuntu-latest + # Don't depend on sanity jobs, to have more parallelism. + # TODO: cancel these jobs if sanity fails. + # needs: sanity permissions: contents: read strategy: matrix: # No need to run 'cftests-junit-jdk21' on JDK 21. - script: ['typecheck-part1', 'typecheck-part2', 'guava', 'plume-lib', 'jspecify-conformance'] + script: ['typecheck-part1', 'typecheck-part2', 'guava', 'plume-lib', 'daikon-part1', 'daikon-part2', 'jspecify-conformance'] java_version: [21] env: JAVA_VERSION: ${{ matrix.java_version }} @@ -67,14 +70,14 @@ jobs: otherjdks: name: ${{ matrix.script }} on JDK ${{ matrix.java.version }} runs-on: ubuntu-latest - needs: remainder + needs: sanity permissions: contents: read strategy: fail-fast: false matrix: # jspecify-conformance only tested on JDK 21. - script: ['cftests-junit', 'cftests-nonjunit', 'cftests-junit-jdk21', 'typecheck-part1', 'typecheck-part2', 'guava', 'plume-lib'] + script: ['cftests-junit', 'cftests-nonjunit', 'cftests-junit-jdk21', 'typecheck-part1', 'typecheck-part2', 'guava', 'plume-lib', 'daikon-part1', 'daikon-part2'] # JDK 21 used by sanity before java: [{version: '8', experimental: false}, {version: '11', experimental: false}, @@ -114,7 +117,9 @@ jobs: # # At least one plume-lib project no longer works on Java 8. # Java 8 does not allow toolchains, so testing 'cftests-junit-jdk21' is unnecessary. - if: matrix.java.version != 8 || (matrix.script != 'plume-lib' && matrix.script != 'cftests-junit-jdk21') + # Daikon produces 'this-escape' compiler warnings in JDK 22+. + if: (matrix.java.version != 8 || (matrix.script != 'plume-lib' && matrix.script != 'cftests-junit-jdk21')) && + (matrix.java.version <= 21 || (matrix.script != 'daikon-part1' && matrix.script != 'daikon-part2')) # Set the compiler version to use, allowing us to e.g. run Java 23 while gradle does not work # on Java 23 yet. This only tests the compiler, it does not use that version to run the tests. env: diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1fd481f3956..068eb5090d3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,385 +10,10 @@ pr: jobs: -# Tests run on -# * "LTS" releases (8, 11, 17, 21), -# * jdk_latest, which is the latest JDK release. This is currently JDK 21, so not separate. -# (jdk_latest will move to JDK 22 once it is released.) -# * jdk_next, which is the next JDK version, which is not yet released and might still fail. -# This is currently JDK 22. -# -# The dependsOn clauses are: -# * Everything depends on the canary jobs (the 4 main jdk_21 jobs (the newest LTS release)), except those jobs themselves. -# * Anything *_jdk8, *_jdk11, *_jdk17, *_jdk_latest, or *_jdk_next depends on *_jdk21. -# * Anything daikon_* and guava_* depends on the framework jobs (all core CF tests for JDK 8, 11, 17, and 21). -# (This avoids running these long-running jobs if something already failed in the framework.) - -# Use inference/typecheck part1/part2 to reduce latency. -# Include misc_jdk_latest because JDK 20+ adds more strict checking (e.g., Javadoc) -- job: canary_jobs - dependsOn: - # - junit_jdk21 - # - nonjunit_jdk21 - # - inference_part1_jdk21 - # - inference_part2_jdk21 - # - typecheck_part1_jdk21 - # - typecheck_part2_jdk21 - - misc_jdk21 - # - misc_jdk_latest - pool: - vmImage: 'ubuntu-latest' - steps: - - checkout: none - -- job: framework_jobs - dependsOn: - - canary_jobs - # - junit_jdk8 - # - junit_jdk11 - # - junit_jdk17 - # - junit_jdk_latest - # - junit_jdk_next - # - nonjunit_jdk8 - # - nonjunit_jdk11 - # - nonjunit_jdk17 - # - nonjunit_jdk_latest - # - nonjunit_jdk_next - # - inference_jdk8 - # - inference_jdk11 - # - inference_jdk17 - # - inference_jdk_latest - # - inference_jdk_next - # - typecheck_jdk8 - # - typecheck_jdk11 - # - typecheck_jdk17 - # - typecheck_jdk_latest - # - typecheck_jdk_next - pool: - vmImage: 'ubuntu-latest' - steps: - - checkout: none - -- job: required_jobs - dependsOn: - - framework_jobs - # - daikon_jdk8 - # - daikon_jdk11 - - daikon_jdk17 - - daikon_jdk21 - # - daikon_jdk_latest - # Not daikon_jdk_next - # - guava_jdk8 - # - guava_jdk11 - # - guava_jdk17 - # - guava_jdk21 - # - guava_jdk_latest - # Not guava_jdk_next - # - plume_lib_jdk8 - # - plume_lib_jdk11 - # - plume_lib_jdk17 - # - plume_lib_jdk21 - # - plume_lib_jdk_latest - # Not plume_lib_jdk_next - # - windows_junit_jdk17 - # - jspecify_conformance_jdk21 - pool: - vmImage: 'ubuntu-latest' - steps: - - checkout: none - -- job: junit_jdk8 - condition: false - dependsOn: - - canary_jobs - - junit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk8:latest - timeoutInMinutes: 70 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-junit.sh - displayName: test-cftests-junit.sh - - task: PublishPipelineArtifact@1 - inputs: - targetPath: ./checker/dist - artifactName: cf_jdk8 - artifactType: pipeline -- job: junit_jdk11 - condition: false - dependsOn: - - canary_jobs - - junit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk11:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-junit.sh - displayName: test-cftests-junit.sh - - task: PublishPipelineArtifact@1 - inputs: - targetPath: ./checker/dist - artifactName: cf_jdk11 - artifactType: pipeline -- job: junit_jdk17 - condition: false - dependsOn: - - canary_jobs - - junit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk17:latest - timeoutInMinutes: 70 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-junit.sh - displayName: test-cftests-junit.sh - - task: PublishPipelineArtifact@1 - inputs: - targetPath: ./checker/dist - artifactName: cf_jdk17 - artifactType: pipeline -- job: junit_jdk21 - condition: false - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21:latest - timeoutInMinutes: 70 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-junit.sh - displayName: test-cftests-junit.sh - - task: PublishPipelineArtifact@1 - inputs: - targetPath: ./checker/dist - artifactName: cf_jdk_latest - artifactType: pipeline -# Disable until JDK 22 is stable -# - job: junit_jdk_latest -# dependsOn: -# - canary_jobs -# - junit_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-latest:latest -# timeoutInMinutes: 70 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-cftests-junit.sh -# displayName: test-cftests-junit.sh -# - task: PublishPipelineArtifact@1 -# inputs: -# targetPath: ./checker/dist -# artifactName: cf_jdk_latest -# artifactType: pipeline -- job: junit_jdk_next - condition: false - dependsOn: - - canary_jobs - - junit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk-next:latest - timeoutInMinutes: 70 - steps: - - checkout: self - fetchDepth: 25 - # Run test, but do not cause overall failure - - bash: ./checker/bin-devel/test-cftests-junit.sh - continueOnError: true - displayName: test-cftests-junit.sh - - task: PublishPipelineArtifact@1 - continueOnError: true - inputs: - targetPath: ./checker/dist - artifactName: cf_jdk_next - artifactType: pipeline - -- job: nonjunit_jdk8 - condition: false - dependsOn: - - canary_jobs - - nonjunit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk8:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-nonjunit.sh - displayName: test-cftests-nonjunit.sh -- job: nonjunit_jdk11 - condition: false - dependsOn: - - canary_jobs - - nonjunit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk11:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-nonjunit.sh - displayName: test-cftests-nonjunit.sh -- job: nonjunit_jdk17 - condition: false - dependsOn: - - canary_jobs - - nonjunit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk17:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-nonjunit.sh - displayName: test-cftests-nonjunit.sh -- job: nonjunit_jdk21 - condition: false - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-nonjunit.sh - displayName: test-cftests-nonjunit.sh -# Disable until JDK 22 is stable -# - job: nonjunit_jdk_latest -# dependsOn: -# - canary_jobs -# - nonjunit_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-latest:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-cftests-nonjunit.sh -# displayName: test-cftests-nonjunit.sh -- job: nonjunit_jdk_next - condition: false - dependsOn: - - canary_jobs - - nonjunit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk-next:latest - steps: - - checkout: self - fetchDepth: 25 - # Run test, but do not cause overall failure - - bash: ./checker/bin-devel/test-cftests-nonjunit.sh - continueOnError: true - displayName: test-cftests-nonjunit.sh - -# # Inference tests in EISOP do nothing, so disable the jobs here. -# # Sometimes one of the invocations of wpi-many in `./gradlew wpiManyTest` -# # takes much longer to complete than normal, and this Azure job times out. -# # When there is a timeout, one cannot examine wpi or wpi-many logs. -# # So use a timeout of 90 minutes, and hope that is enough. -# - job: inference_jdk8 -# dependsOn: -# - canary_jobs -# - inference_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk8:latest -# timeoutInMinutes: 90 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-cftests-inference.sh -# displayName: test-cftests-inference.sh -# - job: inference_jdk11 -# dependsOn: -# - canary_jobs -# - inference_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk11:latest -# timeoutInMinutes: 90 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-cftests-inference.sh -# displayName: test-cftests-inference.sh -# - job: inference_jdk17 -# dependsOn: -# - canary_jobs -# - inference_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk17:latest -# timeoutInMinutes: 90 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-cftests-inference.sh -# displayName: test-cftests-inference.sh -# # Split into part1 and part2 only for the inference job that "canary_jobs" depends on. -# - job: inference_part1_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk21:latest -# timeoutInMinutes: 90 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-cftests-inference-part1.sh -# displayName: test-cftests-inference-part1.sh -# - job: inference_part2_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk21:latest -# timeoutInMinutes: 90 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-cftests-inference-part2.sh -# displayName: test-cftests-inference-part2.sh -# # Disable until JDK 22 is stable -# # - job: inference_jdk_latest -# # dependsOn: -# # - canary_jobs -# # - inference_part1_jdk21 -# # - inference_part2_jdk21 -# # pool: -# # vmImage: 'ubuntu-latest' -# # container: wmdietl/cf-ubuntu-jdk-latest:latest -# # timeoutInMinutes: 90 -# # steps: -# # - checkout: self -# # fetchDepth: 25 -# # - bash: ./checker/bin-devel/test-cftests-inference.sh -# # displayName: test-cftests-inference.sh -# - job: inference_jdk_next -# dependsOn: -# - canary_jobs -# - inference_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-next:latest -# timeoutInMinutes: 70 -# steps: -# - checkout: self -# fetchDepth: 25 -# # Run test, but do not cause overall failure -# - bash: ./checker/bin-devel/test-cftests-inference.sh -# continueOnError: true -# displayName: test-cftests-inference.sh - # Unlimited fetchDepth for misc_jobs, because of need to make contributors.tex - job: misc_jdk8 - dependsOn: - # - canary_jobs - - misc_jdk21 + # dependsOn: + # - misc_jdk21 pool: vmImage: 'ubuntu-latest' container: wmdietl/cf-ubuntu-jdk8-plus:latest @@ -397,9 +22,8 @@ jobs: - bash: ./checker/bin-devel/test-misc.sh displayName: test-misc.sh - job: misc_jdk11 - dependsOn: - # - canary_jobs - - misc_jdk21 + # dependsOn: + # - misc_jdk21 pool: vmImage: 'ubuntu-latest' container: wmdietl/cf-ubuntu-jdk11-plus:latest @@ -408,9 +32,8 @@ jobs: - bash: ./checker/bin-devel/test-misc.sh displayName: test-misc.sh - job: misc_jdk17 - dependsOn: - # - canary_jobs - - misc_jdk21 + # dependsOn: + # - misc_jdk21 pool: vmImage: 'ubuntu-latest' container: wmdietl/cf-ubuntu-jdk17-plus:latest @@ -439,9 +62,8 @@ jobs: # - bash: ./checker/bin-devel/test-misc.sh # displayName: test-misc.sh - job: misc_jdk_next - dependsOn: - # - canary_jobs - - misc_jdk21 + # dependsOn: + # - misc_jdk21 pool: vmImage: 'ubuntu-latest' container: wmdietl/cf-ubuntu-jdk-next-plus:latest @@ -451,469 +73,3 @@ jobs: - bash: ./checker/bin-devel/test-misc.sh continueOnError: true displayName: test-misc.sh - -- job: typecheck_jdk8 - condition: false - dependsOn: - - canary_jobs - - typecheck_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk8:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-typecheck.sh - displayName: test-typecheck.sh -- job: typecheck_jdk11 - condition: false - dependsOn: - - canary_jobs - - typecheck_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk11:latest - steps: - - checkout: self - fetchDepth: 1000 - - bash: ./checker/bin-devel/test-typecheck.sh - displayName: test-typecheck.sh -- job: typecheck_jdk17 - condition: false - dependsOn: - - canary_jobs - - typecheck_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk17-plus:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-typecheck.sh - displayName: test-typecheck.sh -# Split into part1 and part2 only for the type-checking job that "canary_jobs" depends on. -- job: typecheck_part1_jdk21 - condition: false - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21-plus:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-typecheck-part1.sh - displayName: test-typecheck-part1.sh -- job: typecheck_part2_jdk21 - condition: false - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21-plus:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-typecheck-part2.sh - displayName: test-typecheck-part2.sh -- job: typecheck_jdk21 - condition: false - dependsOn: - - typecheck_part1_jdk21 - - typecheck_part2_jdk21 - pool: - vmImage: 'ubuntu-latest' - steps: - - checkout: none -# Disable until JDK 22 is stable -# - job: typecheck_jdk_latest -# dependsOn: -# - canary_jobs -# - typecheck_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-latest-plus:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-typecheck.sh -# displayName: test-typecheck.sh -- job: typecheck_jdk_next - condition: false - dependsOn: - - canary_jobs - - typecheck_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk-next:latest - steps: - - checkout: self - fetchDepth: 25 - # Run test, but do not cause overall failure - - bash: ./checker/bin-devel/test-typecheck.sh - continueOnError: true - displayName: test-typecheck.sh - -- job: daikon_jdk8 - # Disable test on older JDK - condition: false - dependsOn: - - framework_jobs - - daikon_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk8:latest - timeoutInMinutes: 70 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-daikon.sh - displayName: test-daikon.sh -- job: daikon_jdk11 - # Disable test on older JDK - condition: false - dependsOn: - - framework_jobs - - daikon_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk11:latest - timeoutInMinutes: 80 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-daikon.sh - displayName: test-daikon.sh -- job: daikon_jdk17 - dependsOn: - - canary_jobs - - daikon_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk17:latest - timeoutInMinutes: 80 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-daikon.sh - displayName: test-daikon.sh -- job: daikon_part1_jdk21 - dependsOn: - - canary_jobs - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21:latest - timeoutInMinutes: 70 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-daikon-part1.sh - displayName: test-daikon.sh -- job: daikon_part2_jdk21 - dependsOn: - - canary_jobs - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21:latest - timeoutInMinutes: 80 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-daikon-part2.sh - displayName: test-daikon-part2.sh -- job: daikon_jdk21 - dependsOn: - - daikon_part1_jdk21 - - daikon_part2_jdk21 - pool: - vmImage: 'ubuntu-latest' - steps: - - checkout: none -# Disable until JDK 22 is stable -# - job: daikon_jdk_latest -# dependsOn: -# - canary_jobs -# - daikon_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-latest:latest -# timeoutInMinutes: 80 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-daikon.sh -# displayName: test-daikon.sh -- job: daikon_jdk_next - dependsOn: - - framework_jobs - - daikon_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk-next:latest - timeoutInMinutes: 70 - steps: - - checkout: self - fetchDepth: 25 - # Run test, but do not cause overall failure - - bash: ./checker/bin-devel/test-daikon.sh - continueOnError: true - displayName: test-daikon.sh - -- job: guava_jdk8 - # Disable test on older JDK - condition: false - dependsOn: - - framework_jobs - - guava_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk8:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-guava.sh - displayName: test-guava.sh -- job: guava_jdk11 - # Disable test on older JDK - condition: false - dependsOn: - - framework_jobs - - guava_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk11:latest - timeoutInMinutes: 60 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-guava.sh - displayName: test-guava.sh -- job: guava_jdk17 - condition: false - dependsOn: - - framework_jobs - - guava_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk17:latest - timeoutInMinutes: 60 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-guava.sh - displayName: test-guava.sh -- job: guava_jdk21 - condition: false - dependsOn: - - canary_jobs - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21:latest - # The guava job sometimes times out, because the time between these lines can be 30 minutes! - # [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-tools-generators/3.5.1/maven-plugin-tools-generators-3.5.1.pom - # [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-tools-generators/3.5.1/maven-plugin-tools-generators-3.5.1.pom - # I tried to configure Maven to prevent that problem, but it is still ocurring. - # Maybe I need to use caching? https://learn.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops - timeoutInMinutes: 60 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-guava.sh - displayName: test-guava.sh -# Disable until JDK 22 is stable -# - job: guava_jdk_latest -# dependsOn: -# - framework_jobs -# - guava_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-latest:latest -# timeoutInMinutes: 60 -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-guava.sh -# displayName: test-guava.sh -- job: guava_jdk_next - condition: false - dependsOn: - - framework_jobs - - guava_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk-next:latest - steps: - - checkout: self - fetchDepth: 25 - # Run test, but do not cause overall failure - - bash: ./checker/bin-devel/test-guava.sh - continueOnError: true - displayName: test-guava.sh - -- job: plume_lib_jdk8 - # Disable test on older JDK - condition: false - dependsOn: - - canary_jobs - - plume_lib_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk8:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-plume-lib.sh - displayName: test-plume-lib.sh -- job: plume_lib_jdk11 - # Disable test on older JDK - condition: false - dependsOn: - - canary_jobs - - plume_lib_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk11:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-plume-lib.sh - displayName: test-plume-lib.sh -- job: plume_lib_jdk17 - condition: false - dependsOn: - - canary_jobs - - plume_lib_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk17:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-plume-lib.sh - displayName: test-plume-lib.sh -- job: plume_lib_jdk21 - condition: false - dependsOn: - - canary_jobs - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-plume-lib.sh - displayName: test-plume-lib.sh -# Disable until JDK 22 is stable -# - job: plume_lib_jdk_latest -# dependsOn: -# - canary_jobs -# - plume_lib_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-latest:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-plume-lib.sh -# displayName: test-plume-lib.sh -- job: plume_lib_jdk_next - condition: false - dependsOn: - - canary_jobs - - plume_lib_jdk17 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk-next:latest - steps: - - checkout: self - fetchDepth: 25 - # Run test, but do not cause overall failure - - bash: ./checker/bin-devel/test-plume-lib.sh - continueOnError: true - displayName: test-plume-lib.sh - -- job: jspecify_conformance_jdk21 - condition: false - dependsOn: - - junit_jdk21 - pool: - vmImage: 'ubuntu-latest' - container: wmdietl/cf-ubuntu-jdk21:latest - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-jspecify-conformance.sh - displayName: test-jspecify-conformance.sh - -## The downstream jobs are not currently needed because test-downstream.sh is empty. -# - job: downstream_jdk8 -# dependsOn: -# - canary_jobs -# - downstream_jdk17 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk8:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-downstream.sh -# displayName: test-downstream.sh -# - job: downstream_jdk11 -# dependsOn: -# - canary_jobs -# - downstream_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk11:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-downstream.sh -# displayName: test-downstream.sh -# - job: downstream_jdk17 -# dependsOn: -# - canary_jobs -# - downstream_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk17:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-downstream.sh -# displayName: test-downstream.sh -# - job: downstream_jdk21 -# dependsOn: -# - canary_jobs -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk21:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-downstream.sh -# displayName: test-downstream.sh -# - job: downstream_jdk20 -# dependsOn: -# - canary_jobs -# - downstream_jdk21 -# pool: -# vmImage: 'ubuntu-latest' -# container: wmdietl/cf-ubuntu-jdk-latest:latest -# steps: -# - checkout: self -# fetchDepth: 25 -# - bash: ./checker/bin-devel/test-downstream.sh -# displayName: test-downstream.sh - -- job: windows_junit_jdk17 - condition: false - dependsOn: - - junit_jdk21 - pool: - vmImage: 'windows-latest' - timeoutInMinutes: 90 - steps: - - checkout: self - fetchDepth: 25 - - bash: ./checker/bin-devel/test-cftests-junit.sh - displayName: Run all JUnit tests - env: - JAVA_HOME: $(JAVA_HOME_17_X64) - PATH: $(JAVA_HOME_17_X64)/bin:$(PATH) diff --git a/build.gradle b/build.gradle index 30b923ca25d..bf1b7340a96 100644 --- a/build.gradle +++ b/build.gradle @@ -460,14 +460,18 @@ allprojects { // -classfile: classgraph jar file and https://bugs.openjdk.org/browse/JDK-8190452 String lint = '-Xlint:-options,-fallthrough,-classfile' // Java 8 uses the Error Prone javac, not what is requested with useJdkCompiler. - if (!isJava8 && useJdkCompiler >= 21) { - // TODO: Ignore this-escape for now, we may want to review and suppress each one later. - lint +=',-this-escape' - } - if (!isJava8 && useJdkCompiler >= 23) { - // TODO: Ignore dangling-doc-comments for now, we may want to fix them later. - lint +=',-dangling-doc-comments' + // So there is no need to set additional lint options. + if (!isJava8) { + if (useJdkCompiler >= 21) { + // TODO: Ignore this-escape for now, we may want to review and suppress each one later. + lint +=',-this-escape' + } + if (useJdkCompiler >= 23) { + // TODO: Ignore dangling-doc-comments for now, we may want to fix them later. + lint +=',-dangling-doc-comments' + } } + options.compilerArgs += [ '-g', '-Werror',