Update all non-major dependencies #100
This file contains hidden or 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: Build Project | |
on: | |
push: | |
branches: [ master, ver/* ] | |
pull_request: | |
branches: [ master, ver/* ] | |
workflow_dispatch: | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
name: Gradle Setup | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- uses: gradle/wrapper-validation-action@v3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
cache: 'gradle' | |
- name: Change Permissions | |
run: chmod +x ./gradlew | |
- name: Gradle Information | |
run: ./gradlew project tasks dependencies | |
build: | |
runs-on: ubuntu-latest | |
needs: setup | |
timeout-minutes: 10 | |
strategy: | |
matrix: | |
java-version: [11, 17, 21] | |
name: Build Java ${{ matrix.java-version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Set up JDK ${{ matrix.java-version }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java-version }} | |
cache: 'gradle' | |
- name: Change Permissions | |
run: chmod +x ./gradlew | |
- name: Build with Gradle | |
run: ./gradlew assemble publishToMavenLocal | |
test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
needs: setup | |
permissions: | |
checks: write | |
pull-requests: write | |
name: Test Project | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
cache: 'gradle' | |
- name: Change Permissions | |
run: chmod +x ./gradlew | |
- name: Gradle Test | |
run: ./gradlew test | |
- name: Collect JaCoCo Report | |
if: ${{ github.event_name != 'pull_request' }} | |
id: jacoco_reporter | |
uses: PavanMudigonda/jacoco-reporter@v5.1 | |
with: | |
coverage_results_path: build/jacoco.xml | |
coverage_report_name: Code Coverage | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
skip_check_run: false | |
minimum_coverage: 85 | |
fail_below_threshold: false | |
publish_only_summary: false | |
- name: Print JaCoCo Report | |
if: ${{ github.event_name != 'pull_request' }} | |
run: | | |
echo "| Outcome | Value |" >> $GITHUB_STEP_SUMMARY | |
echo "| --- | --- |" >> $GITHUB_STEP_SUMMARY | |
echo "| Code Coverage % | ${{ steps.jacoco_reporter.outputs.coverage_percentage }} |" >> $GITHUB_STEP_SUMMARY | |
echo "| :heavy_check_mark: Number of Lines Covered | ${{ steps.jacoco_reporter.outputs.covered_lines }} |" >> $GITHUB_STEP_SUMMARY | |
echo "| :x: Number of Lines Missed | ${{ steps.jacoco_reporter.outputs.missed_lines }} |" >> $GITHUB_STEP_SUMMARY | |
echo "| Total Number of Lines | ${{ steps.jacoco_reporter.outputs.total_lines }} |" >> $GITHUB_STEP_SUMMARY | |
- name: Upload Code Coverage Artifacts (Push) | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-report | |
path: "*/coverage-results.md" | |
- name: Upload Code Coverage Artifacts (Pull Request) | |
if: ${{ github.event_name == 'pull_request' }} | |
uses: madrapps/jacoco-report@v1.7.1 | |
with: | |
paths: build/jacoco.xml | |
token: ${{ secrets.GITHUB_TOKEN }} | |
pass-emoji: ✅ | |
min-coverage-overall: 85 | |
min-coverage-changed-files: 90 | |
deploy: | |
runs-on: ubuntu-latest | |
needs: build | |
name: Deploy JavaDocs | |
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }} | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
cache: 'gradle' | |
- name: Change Permissions | |
run: chmod +x ./gradlew | |
- name: Build JavaDocs | |
run: ./gradlew javadoc | |
- name: Deploy JavaDoc | |
run: bash javadoc.sh ${GITHUB_SHA::7} | |
publish: | |
runs-on: ubuntu-latest | |
needs: build | |
name: Publish to Repository | |
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }} | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
cache: 'gradle' | |
- name: Change Permissions | |
run: chmod +x ./gradlew | |
- name: Publish to Repository | |
env: | |
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} | |
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} | |
run: ./gradlew publish -Psnapshot=true |