aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/pull_request.yml
blob: 48f171cf62bb678bccbe727672da9c97cf01e13c (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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/