name: CI on: push: tags: - '*' branches: - main pull_request: workflow_dispatch: permissions: read-all concurrency: group: ${{ github.workflow }}-${{ github.ref_name }} cancel-in-progress: true jobs: # ktlintCheck does not have per-variant tasks, so runs once over everything ktlint: name: ktlintCheck runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4 - uses: ./.github/actions/setup-build-env with: gradle-cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: ktlintCheck run: ./gradlew ktlintCheck # Tools are not per-variant tools: name: Test tools runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4 - uses: ./.github/actions/setup-build-env with: gradle-cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Test tools working-directory: tools run: ../gradlew test # Custom lint rules are not per-variant custom-lint: name: Custom lint runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4 - uses: ./.github/actions/setup-build-env with: gradle-cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Test custom lint rules working-directory: checks run: ../gradlew test # Android lint is per-variant lint: strategy: matrix: color: ["orange"] store: ["fdroid", "github", "google"] type: ["debug"] name: Android Lint runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4 - uses: ./.github/actions/setup-build-env with: gradle-cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Regular lint ${{ matrix.color }}${{ matrix.store }}${{ matrix.type }} run: ./gradlew lint${{ matrix.color }}${{ matrix.store }}${{ matrix.type }} # Android tests are per variant test: strategy: matrix: color: ["orange"] store: ["fdroid", "github", "google"] type: ["debug"] name: Android Test runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4 - uses: ./.github/actions/setup-build-env with: gradle-cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: test ${{ matrix.color }}${{ matrix.store }}${{ matrix.type }} run: ./gradlew test${{ matrix.color }}${{ matrix.store }}${{ matrix.type }} # Android assemble is per variant assemble: strategy: matrix: color: ["orange"] store: ["fdroid", "github", "google"] type: ["debug"] name: Android Assemble runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4 - uses: ./.github/actions/setup-build-env with: gradle-cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: assemble ${{ matrix.color }}${{ matrix.store }}${{ matrix.type }} run: ./gradlew assemble${{ matrix.color }}${{ matrix.store }}${{ matrix.type }}