mirror of
https://github.com/home-assistant/android
synced 2024-10-04 23:29:31 +00:00
26a472afc6
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
127 lines
3.7 KiB
YAML
127 lines
3.7 KiB
YAML
name: Pull Request
|
||
|
||
on:
|
||
pull_request:
|
||
branches: [ master ]
|
||
|
||
jobs:
|
||
ktlint:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- name: Set up JDK 17
|
||
uses: actions/setup-java@v4.0.0
|
||
with:
|
||
distribution: 'temurin'
|
||
java-version: '17'
|
||
|
||
- uses: actions/cache@v4
|
||
with:
|
||
path: |
|
||
~/.gradle/caches
|
||
~/.gradle/wrapper
|
||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
|
||
restore-keys: |
|
||
${{ runner.os }}-gradle-
|
||
|
||
- name: Mock google-services.json
|
||
run: |
|
||
cp .github/mock-google-services.json app/google-services.json
|
||
cp .github/mock-google-services.json wear/google-services.json
|
||
cp .github/mock-google-services.json automotive/google-services.json
|
||
|
||
- uses: gradle/wrapper-validation-action@v1
|
||
name: Validate Gradle Wrapper
|
||
|
||
- name: Validate ktlint
|
||
run: ./gradlew ktlintCheck
|
||
|
||
lint:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- name: Set up JDK 17
|
||
uses: actions/setup-java@v4.0.0
|
||
with:
|
||
distribution: 'adopt'
|
||
java-version: '17'
|
||
|
||
- uses: actions/cache@v4
|
||
with:
|
||
path: |
|
||
~/.gradle/caches
|
||
~/.gradle/wrapper
|
||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
|
||
restore-keys: |
|
||
${{ runner.os }}-gradle-
|
||
|
||
- name: Mock google-services.json
|
||
run: |
|
||
cp .github/mock-google-services.json app/google-services.json
|
||
cp .github/mock-google-services.json wear/google-services.json
|
||
cp .github/mock-google-services.json automotive/google-services.json
|
||
|
||
- uses: gradle/wrapper-validation-action@v1
|
||
name: Validate Gradle Wrapper
|
||
|
||
- name: Validate Lint
|
||
run: ./gradlew lint
|
||
|
||
pr_build:
|
||
runs-on: ubuntu-latest
|
||
permissions:
|
||
contents: write
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 0
|
||
|
||
- name: Check for modified DB schemas on branch
|
||
run: |
|
||
if git diff --name-only --diff-filter=DMR origin/master... | grep "^common/schemas"; then
|
||
echo -e "\n❌ Existing database schema modified, please increase the database version instead"
|
||
exit 1
|
||
else
|
||
echo -e "\n✔️ No changed database schemas on branch"
|
||
fi
|
||
|
||
- name: Set up JDK 17
|
||
uses: actions/setup-java@v4.0.0
|
||
with:
|
||
distribution: 'adopt'
|
||
java-version: '17'
|
||
|
||
- name: Setup Gradle
|
||
uses: gradle/gradle-build-action@v2
|
||
|
||
- name: Mock google-services.json
|
||
run: |
|
||
cp .github/mock-google-services.json app/google-services.json
|
||
cp .github/mock-google-services.json wear/google-services.json
|
||
cp .github/mock-google-services.json automotive/google-services.json
|
||
|
||
- uses: gradle/wrapper-validation-action@v1
|
||
name: Validate Gradle Wrapper
|
||
|
||
- name: Build Debug APK
|
||
run: |
|
||
./gradlew :common:assemble
|
||
./gradlew :app:assembleDebug
|
||
./gradlew :wear:assembleDebug
|
||
./gradlew :automotive:assembleDebug
|
||
|
||
- name: Check for missing/modified DB schemas after build
|
||
run: |
|
||
if [[ $(git status common/schemas --porcelain) ]]; then
|
||
echo $(git status common/schemas --porcelain)
|
||
echo -e "\n❌ Found uncommitted changes in database schema directory, please make sure to include all changes in your commit(s)"
|
||
exit 1;
|
||
else
|
||
echo -e "\n✔️ No changes in database schema directory after build"
|
||
fi
|
||
|
||
- name: Archive Debug Build
|
||
uses: actions/upload-artifact@v4
|
||
with:
|
||
path: ./**/*.apk
|