name: build-and-test on: - pull_request - push jobs: build: runs-on: docker container: image: git.staropensource.de/infrastructure/actions-docker:java steps: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 - name: Restore Gradle cache uses: actions/cache/restore@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | gradle-${{ runner.os }}- - name: Compile run: ./gradlew --no-daemon jar javadocJar sourceJar - name: Save Gradle cache uses: actions/cache/save@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | gradle-${{ runner.os }}- - name: Upload library JARs uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: jars-libraries path: | **/build/libs/*.jar !**/build/libs/*-javadoc.jar !**/build/libs/*-sources.jar if-no-files-found: error - name: Upload API documentation JARs uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: jars-apidocs path: | **/build/libs/*-javadoc.jar if-no-files-found: error - name: Upload source JARs uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: jars-sources path: | **/build/libs/*-sources.jar if-no-files-found: error generate-javadoc: runs-on: docker container: image: git.staropensource.de/infrastructure/actions-docker:java steps: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 - name: Restore Gradle cache uses: actions/cache/restore@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | gradle-${{ runner.os }}- - name: Generate javadoc run: ./gradlew --no-daemon javadoc javadocAll - name: Save Gradle cache uses: actions/cache/save@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | gradle-${{ runner.os }}- - name: Upload separate javadoc uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: javadoc-separate path: | **/build/docs/javadoc/* if-no-files-found: error - name: Upload combined javadoc uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: javadoc-combined path: | build/docs/javadoc/* if-no-files-found: error test: runs-on: docker container: image: git.staropensource.de/infrastructure/actions-docker:java steps: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 - name: Restore Gradle cache uses: actions/cache/restore@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | gradle-${{ runner.os }}- - name: Run tests run: ./gradlew --no-daemon test - name: Save Gradle cache uses: actions/cache/save@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | gradle-${{ runner.os }}-