Merge pull request #855 from cherylking/java21 #699
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build a Java project with Gradle | |
# For more information see: https://docs.github.com/en/free-pro-team@latest/actions/guides/building-and-testing-java-with-gradle | |
name: Java CI with Gradle | |
on: | |
push: | |
branches: '**' | |
pull_request: | |
branches: [ main ] | |
jobs: | |
# UNIX BUILDS | |
build-unix: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# test against latest update of each major Java version, as well as specific updates of LTS versions: | |
RUNTIME: [ol, wlp] | |
RUNTIME_VERSION: [23.0.0.10] | |
java: [21, 17, 11, 8] | |
exclude: | |
- java: 8 | |
RUNTIME: wlp | |
- java: 11 | |
RUNTIME: ol | |
name: ${{ matrix.RUNTIME }} ${{ matrix.RUNTIME_VERSION }}, Java ${{ matrix.java }}, Linux | |
steps: | |
# Checkout repos | |
- name: Checkout ci.gradle | |
uses: actions/checkout@v3 | |
- name: Setup Java ${{ matrix.java }} | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'adopt' | |
java-version: ${{ matrix.java }} | |
cache: 'gradle' | |
- name: Checkout ci.common | |
uses: actions/checkout@v3 | |
with: | |
repository: OpenLiberty/ci.common | |
path: ci.common | |
- name: Checkout ci.ant | |
uses: actions/checkout@v3 | |
with: | |
repository: OpenLiberty/ci.ant | |
path: ci.ant | |
# Cache mvn/gradle packages | |
- name: Cache Maven packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Cache Gradle packages | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
# Install dependencies | |
- name: Install ci.ant and ci.common | |
run: | | |
mvn -V clean install -f ci.ant --batch-mode --no-transfer-progress --errors -DtrimStackTrace=false -DskipTests | |
mvn -V clean install -f ci.common --batch-mode --no-transfer-progress --errors -DtrimStackTrace=false -DskipTests | |
# Run tests | |
- name: Run tests with Gradle on Ubuntu | |
run: | |
./gradlew clean install check -Druntime=${{ matrix.RUNTIME }} -DruntimeVersion="${{ matrix.RUNTIME_VERSION }}" -P"test.exclude"="**/DevContainerTest*" --stacktrace --info | |
# Copy build reports and upload artifact if build failed | |
- name: Copy build/report/tests/test for upload | |
if: ${{ failure() }} | |
run: | | |
mkdir -p ${BUILD_REPORTS_PATH} | |
cp -r test ${BUILD_REPORTS_PATH} | |
working-directory: build/reports/tests | |
env: | |
BUILD_REPORTS_PATH: /buildReports/${{runner.os}}/java${{matrix.java}}/${{matrix.RUNTIME}}-${{matrix.RUNTIME_VERSION}}/ | |
- uses: actions/upload-artifact@v3 | |
if: ${{ failure() }} | |
with: | |
name: buildReportsArtifactLinux | |
path: /buildReports | |
retention-days: 3 | |
# WINDOWS BUILDS | |
build-windows: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# test against latest update of each major Java version, as well as specific updates of LTS versions: | |
RUNTIME: [ol, wlp] | |
RUNTIME_VERSION: [23.0.0.10] | |
java: [21, 17, 11, 8] | |
exclude: | |
- java: 8 | |
RUNTIME: ol | |
- java: 11 | |
RUNTIME: wlp | |
name: ${{ matrix.RUNTIME }} ${{ matrix.RUNTIME_VERSION }}, Java ${{ matrix.java }}, Windows | |
steps: | |
# Checkout repos | |
- name: Checkout ci.gradle | |
uses: actions/checkout@v3 | |
- name: Setup Java ${{ matrix.java }} | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'adopt' | |
java-version: ${{ matrix.java }} | |
cache: 'gradle' | |
# Moving and cloning to C: drive for Windows for more disk space | |
- name: Clone ci.ant, ci.common, ci.gradle repos to C drive | |
run: | | |
cp -r D:/a/ci.gradle/ci.gradle C:/ci.gradle | |
git clone https://github.com/OpenLiberty/ci.common.git C:/ci.common | |
git clone https://github.com/OpenLiberty/ci.ant.git C:/ci.ant | |
# Cache mvn/gradle packages | |
- name: Cache Maven packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Cache Gradle packages | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
# Install ci.ant | |
- name: Install ci.ant | |
working-directory: C:/ci.ant | |
run: mvn -V clean install --batch-mode --no-transfer-progress --errors -DtrimStackTrace=false -DskipTests | |
# Install ci.common | |
- name: Install ci.common | |
working-directory: C:/ci.common | |
run: mvn -V clean install --batch-mode --no-transfer-progress --errors -DtrimStackTrace=false -DskipTests | |
# Run tests | |
- name: Run tests with Gradle on Windows | |
working-directory: C:/ci.gradle | |
# LibertyTest is excluded because test0_run hangs | |
run: ./gradlew clean install check -P"test.exclude"="**/Polling*,**/LibertyTest*,**/GenerateFeaturesTest*,**/DevContainerTest*" -Druntime=${{ matrix.RUNTIME }} -DruntimeVersion="${{ matrix.RUNTIME_VERSION }}" --stacktrace --info --no-daemon | |
timeout-minutes: 75 | |
# Copy build reports and upload artifact if build failed | |
- name: Copy build/report/tests/test for upload | |
if: ${{ failure() }} | |
working-directory: C:/ci.gradle | |
run: cp -r build/reports/tests/test D:/buildReports/${{runner.os}}/java${{matrix.java}}/${{matrix.RUNTIME}}-${{matrix.RUNTIME_VERSION}}/ | |
- uses: actions/upload-artifact@v3 | |
if: ${{ failure() }} | |
with: | |
name: buildReportsArtifactWindows | |
path: D:/buildReports | |
retention-days: 3 |