Merge pull request #35 from OpenLiberty/dependabot/github_actions/act… #60
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
name: Java CI with Gradle | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
permissions: | |
contents: read | |
jobs: | |
build: | |
strategy: | |
matrix: | |
java-version: [ '17', '18', '19', '20', '21', '22', '23-ea' ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout project | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
# Strip -ea off of java-version for build-time use | |
- name: Strip java-version postfix | |
id: strip | |
env: | |
JAVA_VERSION: ${{ matrix.java-version }} | |
run: | | |
echo "java-version=${JAVA_VERSION%-ea}" >> $GITHUB_OUTPUT | |
# Gradle 8.X no longer uses a default repository for toolchains. | |
# Ref: https://docs.gradle.org/current/userguide/upgrading_version_7.html#using_automatic_toolchain_downloading_without_having_a_repository_configured | |
# Always preload toolchain JDK | |
- name: Preload JDK ${{ matrix.java-version }} | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 | |
with: | |
java-version: ${{ matrix.java-version }} | |
distribution: 'temurin' | |
# This is the JDK gradle will use since gradle does not always support the -ea version | |
- name: Set up JDK 17 | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Toolchain debug | |
run: | | |
./gradlew -q javaToolchains | |
- name: Build application | |
run: | | |
./gradlew io.openliberty.java.internal_fat_${{ steps.strip.outputs.java-version }}:build | |
- name: Verify application | |
run: | | |
./.github/workflows/scripts/verifyArtifact.sh ${{ steps.strip.outputs.java-version }} | |
- name: Repackage application | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
run: | | |
./.github/workflows/scripts/repackageApplication.sh io.openliberty.java.internal_fat_${{ steps.strip.outputs.java-version }}/build/libs/io.openliberty.java.internal_fat_${{ steps.strip.outputs.java-version }}.war .jar | |
- name: Upload application | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 | |
with: | |
name: io.openliberty.java.internal_fat_${{ steps.strip.outputs.java-version }} | |
path: io.openliberty.java.internal_fat_${{ steps.strip.outputs.java-version }}/build/libs/io.openliberty.java.internal_fat_${{ steps.strip.outputs.java-version }}.jar | |
if-no-files-found: error |