# 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: [ "master", "v2.0.0" ] pull_request: branches: [ "master", "v2.0.0" ] concurrency: group: ${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest permissions: contents: read steps: - uses: actions/checkout@v4 - name: Set up JDKs uses: actions/setup-java@v4 with: java-version: | 16 17 20 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@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 - name: Make gradlew executable run: chmod +x ./gradlew - name: Build with Gradle Wrapper run: ./gradlew build --parallel # Get the names of the online and offline jars - name: Get file name for online JAR of CustomAnvil # grep -v "offline" to exclude offline jar run: | ONLINE_JAR_NAME=$(ls build/libs/CustomAnvil-*.jar | grep -v "offline") echo "online_jar_name=${ONLINE_JAR_NAME}" >> $GITHUB_ENV - name: Get file name for offline JAR of CustomAnvil run: | OFFLINE_JAR_NAME=$(ls build/libs/CustomAnvil-*-offline.jar) echo "offline_jar_name=${OFFLINE_JAR_NAME}" >> $GITHUB_ENV # upload the named jars - name: Upload online JAR artifact uses: actions/upload-artifact@v4 with: name: ${{ env.online_jar_name }} path: build/libs/${{ env.online_jar_name }} - name: Upload offline JAR file uses: actions/upload-artifact@v4 with: name: ${{ env.online_jar_name }} path: build/libs/${{ env.online_jar_name }} # Finally, upload test result - name: Summarize tests results uses: jeantessier/test-summary-action@v1 if: ${{ always() }} dependency-submission: needs: build runs-on: ubuntu-latest permissions: contents: write steps: # Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies. # See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md - name: Generate and submit dependency graph uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0