name: CI on: [push, pull_request] jobs: build: name: Build Smack runs-on: ubuntu-24.04 strategy: matrix: java: - 17 - 21 env: PRIMARY_JAVA_VERSION: 21 steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} distribution: temurin # Caches - name: Cache Maven uses: actions/cache@v2 with: path: ~/.m2/repository key: maven-${{ hashFiles('**/build.gradle') }} restore-keys: | maven- - name: Cache Gradle uses: actions/cache@v2 with: path: ~/.gradle/caches key: gradle-caches-${{ hashFiles('**/build.gradle') }} restore-keys: gradle-caches - name: Cache Android SDK uses: actions/cache@v2 with: path: | ~/.android/sdk key: android-${{ hashFiles('build.gradle') }} restore-keys: | android- # Pre-reqs - name: Install GraphViz run: sudo apt update && sudo apt install graphviz - name: Install Android SDK Manager uses: android-actions/setup-android@v3 - name: Install Android SDK run: | sdkmanager "platforms;android-21" # Testing - name: Gradle Check run: ./gradlew check --stacktrace # Test local publish - name: Gradle publish run: ./gradlew publishToMavenLocal --stacktrace # Javadoc - name: Javadoc if: ${{ matrix.java == env.PRIMARY_JAVA_VERSION }} run: ./gradlew javadocAll --stacktrace # Test Coverage Report - name: Jacoco Test Coverage env: COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} if: | ${{ matrix.java == env.PRIMARY_JAVA_VERSION }} && ${{ env.COVERALLS_REPO_TOKEN != '' }} run: | if [[ -z ${COVERALLS_REPO_TOKEN} ]]; then echo WARNING: COVERALLS_REPO_TOKEN is empty else echo COVERALLS_REPO_TOKEN is not empty fi ./gradlew smack-java11-full:testCodeCoverageReport ./gradlew smack-java11-full:coveralls # Upload build artifacts - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: smack-java-${{ matrix.java }} path: | smack-*/build/libs/*.jar !**/*-test-fixtures.jar !**/*-tests.jar