# 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: write 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: 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 env: SMALL_COMMIT_HASH: ${{ env.small_commit_hash }} # only submit dependency on push - name: Generate and submit dependency graph uses: gradle/actions/dependency-submission@v4 #if: ${{ github.event_name == 'push' && success() }} #temporarly disabled for test 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: ${{ env.online_jar_name }} path: build/libs/${{ env.online_jar_name }} - name: Upload offline JAR file uses: actions/upload-artifact@v4 with: name: ${{ env.offline_jar_name }} path: build/libs/${{ env.offline_jar_name }} - name: Summarize tests results uses: jeantessier/test-summary-action@v1 if: ${{ always() }}