[Feat][SDK- 538] Update android quality plugin #426
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: rollbar-java CI | |
| on: | |
| workflow_call: | |
| secrets: | |
| RELEASE_GPG_PRIVATE_KEY: | |
| required: true | |
| RELEASE_GPG_PRIVATE_KEY_PASSPHRASE: | |
| required: true | |
| MAVENCENTRAL_USERNAME: | |
| required: true | |
| MAVENCENTRAL_PASSWORD: | |
| required: true | |
| push: | |
| branches: [ master ] | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| validation: | |
| name: Gradle wrapper validation | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: gradle/actions/wrapper-validation@v3 | |
| build: | |
| runs-on: ubuntu-22.04 | |
| name: Build with Java ${{ matrix.java }} | |
| needs: [ validation ] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Must upgrade Gradle before we can go past Java 15 here. | |
| # https://docs.gradle.org/current/userguide/compatibility.html | |
| java: [ 11, 17 ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Fetch git tags | |
| run: ./.github/scripts/fetch_to_tag.sh | |
| - name: Set up Java ${{ matrix.java }} | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: ${{ matrix.java }} | |
| distribution: 'zulu' | |
| cache: 'gradle' | |
| # gradle/actions/setup-gradle@v3 might offer better caching and other benefits through better integration. | |
| # https://github.com/gradle/actions/blob/main/docs/setup-gradle.md | |
| - name: Environment info | |
| run: | | |
| ./gradlew --version | |
| echo JAVA_HOME: ${JAVA_HOME} | |
| java -version | |
| javac -version | |
| echo ANDROID_HOME: ${ANDROID_HOME} | |
| echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} | |
| - name: Build | |
| run: ./gradlew clean build --no-daemon | |
| - name: Upload build reports | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: java-${{ matrix.java }}-build-reports | |
| path: | | |
| **/build/reports/* | |
| build-android: | |
| runs-on: ubuntu-22.04 | |
| name: Build Android module with Java 17 | |
| needs: [ validation ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Fetch git tags | |
| run: ./.github/scripts/fetch_to_tag.sh | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: 17 | |
| distribution: 'zulu' | |
| cache: 'gradle' | |
| - name: Install Android SDK | |
| run: | | |
| ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "platforms;android-33" "build-tools;34.0.0" | |
| - name: Build Android module | |
| run: ./gradlew :rollbar-android:build | |
| - name: Upload Android build reports | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-java17-build-reports | |
| path: | | |
| **/build/reports/* | |
| release: | |
| runs-on: ubuntu-22.04 | |
| name: Release | |
| # It would be nice to run this as part of the build job, since it would be | |
| # faster and have less duplicated Yaml, it would not be possible to check | |
| # for all matrix results before publishing if this were just another step | |
| # in that job. | |
| needs: [ build, build-android ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Java 17 for Android | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: 17 | |
| distribution: 'zulu' | |
| cache: 'gradle' | |
| - name: Install Android SDK | |
| run: | | |
| ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "platforms;android-33" "build-tools;34.0.0" | |
| - name: Import GPG key file | |
| run: | | |
| mkdir -p ~/.gradle | |
| echo "${{ secrets.RELEASE_GPG_SECRING_BASE_64 }}" | base64 --decode > ~/.gradle/secring.gpg | |
| - name: Configure Gradle properties | |
| run: | | |
| cat <<EOF >> ~/.gradle/gradle.properties | |
| mavenCentralUsername=${{ secrets.MAVENCENTRAL_USERNAME }} | |
| mavenCentralPassword=${{ secrets.MAVENCENTRAL_PASSWORD }} | |
| signing.password=${{ secrets.RELEASE_GPG_PRIVATE_KEY_PASSPHRASE }} | |
| signing.keyId=${{ secrets.RELEASE_GPG_KEY_ID }} | |
| signing.secretKeyRingFile=/home/runner/.gradle/secring.gpg | |
| EOF | |
| - name: Release | |
| run: | | |
| ./.github/scripts/release.sh |