mirror of
https://github.com/pachli/pachli-android.git
synced 2024-12-13 17:46:45 +01:00
189b441042
This should ensure that everything that is built as part of regular CI can be saved to the build cache after the PR is merged.
124 lines
3.3 KiB
YAML
124 lines
3.3 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*'
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
permissions: read-all
|
|
|
|
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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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 }}
|