aboutsummaryrefslogtreecommitdiff
on:
  pull_request:
  merge_group:

name: Check pull request

concurrency:
  group: ${{ github.head_ref || github.ref_name }}
  cancel-in-progress: true

env:
  SENTRY_DSN: 'https://public_key@example.com/project_id'

jobs:
  check-codestyle:
    runs-on: ubuntu-latest
    steps:
      - name: Setup build environment
        uses: android-password-store/android-password-store/.github/reusable-workflows/setup-gradle@develop

      - name: Check codestyle
        shell: bash
        run: ./gradlew spotlessCheck

      - name: Upload Kotlin build report
        if: "${{ always() }}"
        uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        with:
          name: Build report (check-codestyle)
          path: build/reports/kotlin-build/

  unit-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Setup build environment
        uses: android-password-store/android-password-store/.github/reusable-workflows/setup-gradle@develop

      - name: Run unit tests
        shell: bash
        run: ./gradlew test -PslimTests

      - name: (Fail-only) Upload test report
        if: "${{ failure() }}"
        uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        with:
          name: Test report (unit-tests)
          path: app/build/reports

      - name: Upload Kotlin build report
        if: "${{ always() }}"
        uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        with:
          name: Build report (unit-tests)
          path: build/reports/kotlin-build/

  build-apks:
    runs-on: ubuntu-latest
    steps:
      - name: Setup build environment
        uses: android-password-store/android-password-store/.github/reusable-workflows/setup-gradle@develop

      - name: Build debug APKs
        shell: bash
        run: ./gradlew assembleFreeDebug assembleNonFreeDebug assembleNonFreeRelease

      - name: Upload Kotlin build report
        if: "${{ always() }}"
        uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        with:
          name: Build report (build-apks)
          path: build/reports/kotlin-build/

  check-api:
    runs-on: ubuntu-latest
    steps:
      - name: Setup build environment
        uses: android-password-store/android-password-store/.github/reusable-workflows/setup-gradle@develop

      - name: Check library API
        shell: bash
        run: ./gradlew metalavaCheckCompatibilityRelease

      - name: Upload Kotlin build report
        if: "${{ always() }}"
        uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        with:
          name: Build report (check-api)
          path: build/reports/kotlin-build/

  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Setup build environment
        uses: android-password-store/android-password-store/.github/reusable-workflows/setup-gradle@develop

      - name: Run Lint
        shell: bash
        run: ./gradlew lint

      - name: Upload Kotlin build report
        if: "${{ always() }}"
        uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        with:
          name: Build report (lint)
          path: build/reports/kotlin-build/