Skip to content

GROOVY-12142 backport: Stop pinning container class loaders: remove PIC-Cleane… #7288

GROOVY-12142 backport: Stop pinning container class loaders: remove PIC-Cleane…

GROOVY-12142 backport: Stop pinning container class loaders: remove PIC-Cleane… #7288

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Build and test
on: [push, pull_request]
permissions:
contents: read
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
jobs:
lts:
strategy:
fail-fast: false
matrix:
java: [11, 17, 21, 25]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
check-latest: true
distribution: 'zulu'
java-version: |
${{ matrix.java }}
21
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c
- name: Test with Gradle
run: ./gradlew test -Ptarget.java.home="$JAVA_HOME_${{ matrix.java }}_X64"
timeout-minutes: 60
- name: Upload reports
uses: actions/upload-artifact@v4
if: always()
with:
name: build-reports-${{ matrix.java }}
path: '**/build/reports/'
additional:
strategy:
fail-fast: false
matrix:
java: [12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 26]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
check-latest: true
distribution: 'zulu'
java-version: |
${{ matrix.java }}
21
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c
- name: Test with Gradle
run: ./gradlew test -Ptarget.java.home="$JAVA_HOME_${{ matrix.java }}_X64"
timeout-minutes: 60
# Canary job: run the test suite against an upcoming, not-yet-released JDK.
# setup-java has no first-class EA distribution, so we download the OpenJDK
# EA archive ourselves and install it via `distribution: 'jdkfile'` (which
# extracts/caches it and sets JAVA_HOME). We capture that JAVA_HOME as the
# *test target*, then set up a stable LTS JDK afterwards so Gradle itself
# runs on a GA build. `fail-fast: false` keeps EA breakage from failing the
# rest of the matrix. NOTE: the EA build number bumps ~weekly, so the URL
# below goes stale — refresh it (and jdk-version) from https://jdk.java.net/27/.
ea:
if: github.event_name == 'push'
strategy:
fail-fast: false
matrix:
include:
- jdk-url: "https://download.java.net/java/early_access/jdk27/33/GPL/openjdk-27-ea+33_linux-x64_bin.tar.gz"
jdk-version: "27.0.0-ea.33"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Download EA JDK
run: wget -nv -O "$RUNNER_TEMP/java_package.tar.gz" "${{ matrix.jdk-url }}"
- name: Setup EA JDK (test target)
uses: actions/setup-java@v5
with:
distribution: 'jdkfile'
jdkFile: ${{ runner.temp }}/java_package.tar.gz
java-version: ${{ matrix.jdk-version }}
- name: Capture EA JAVA_HOME
run: echo "EA_JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
- name: Setup build JDK
# Last setup-java wins, so Gradle runs on this stable LTS JDK while the
# tests target the EA JDK captured above via -Ptarget.java.home.
uses: actions/setup-java@v5
with:
check-latest: true
distribution: 'zulu'
java-version: '21'
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c
- name: Test with Gradle
run: ./gradlew test -Ptarget.java.home="$EA_JAVA_HOME"
timeout-minutes: 60
- name: Upload reports
uses: actions/upload-artifact@v4
if: always()
with:
name: build-reports-ea
path: '**/build/reports/'