# This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. # This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle name: Java CI with Gradle on: push: branches: [ "v1.x.x", "v2.x.x" ] pull_request: branches: [ "v1.x.x", "v2.x.x" ] concurrency: group: ${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 - name: Set up JDKs uses: actions/setup-java@v4 with: java-version: | 21 distribution: 'temurin' cache: 'gradle' # Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Make gradlew executable run: chmod +x ./gradlew - name: Get small commit hash run: echo "SMALL_COMMIT_HASH=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV - name: Build with Gradle Wrapper run: ./gradlew build --parallel # only submit dependency on push - name: Generate and submit dependency graph uses: gradle/actions/dependency-submission@v4 if: ${{ github.event_name == 'push' && success() }} continue-on-error: true # Get the names of the online and offline jars # grep -v "offline" to exclude offline jar as the regex would catch it otherwise - name: Get file name for jars run: | ONLINE_JAR_PATH=$(ls build/libs/CustomAnvil-*.jar | grep -v "offline") OFFLINE_JAR_PATH=$(ls build/libs/CustomAnvil-*-offline.jar) echo "ONLINE_JAR_NAME=$(basename $ONLINE_JAR_PATH)" >> $GITHUB_ENV echo "OFFLINE_JAR_NAME=$(basename $OFFLINE_JAR_PATH)" >> $GITHUB_ENV # upload the named jars - name: Upload online JAR artifact uses: actions/upload-artifact@v4 with: name: CustomAnvil.jar path: build/libs/${{ env.ONLINE_JAR_NAME }} - name: Upload offline JAR file uses: actions/upload-artifact@v4 with: name: CustomAnvil-offline.jar path: build/libs/${{ env.OFFLINE_JAR_NAME }} - name: Summarize tests results uses: jeantessier/test-summary-action@v1 if: ${{ always() }}