name: Android CI on: pull_request: push: branches: - 'main' - '8.**' permissions: contents: read # to fetch code (actions/checkout) jobs: build: runs-on: ubuntu-latest-8-cores steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 # gh api repos/actions/checkout/commits/v6 --jq '.sha' with: submodules: true - name: set up JDK 17 uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 # gh api repos/actions/setup-java/commits/v5 --jq '.sha' with: distribution: temurin java-version: 17 - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6 # gh api repos/gradle/actions/commits/v6 --jq '.sha' - name: Set up Gradle uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6 # gh api repos/gradle/actions/commits/v6 --jq '.sha' with: # Only 8.** branch builds write to the cache; everything else (PRs, etc.) reads only. cache-read-only: ${{ !startsWith(github.ref, 'refs/heads/8.') }} # Required to persist the Gradle configuration cache across runs. cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} # Pull requests run the fast custom linter (ci); pushes to main / 8.x branches run the full # Android lint (qa). - name: Build with Gradle env: SIGNAL_BUILD_CACHE_URL: ${{ secrets.SIGNAL_BUILD_CACHE_URL }} SIGNAL_BUILD_CACHE_USER: ${{ secrets.SIGNAL_BUILD_CACHE_USER }} SIGNAL_BUILD_CACHE_PASSWORD: ${{ secrets.SIGNAL_BUILD_CACHE_PASSWORD }} SIGNAL_BUILD_CACHE_PUSH: ${{ startsWith(github.ref, 'refs/heads/8.') }} run: ./gradlew ${{ github.event_name == 'pull_request' && 'ci' || 'qa' }} - name: Archive reports for failed build if: ${{ failure() }} uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 # gh api repos/actions/upload-artifact/commits/v7 --jq '.sha' with: name: reports path: '*/build/reports'