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.2.1 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/actions/wrapper-validation@v3 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.2.1 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/actions/wrapper-validation@v3 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.2.1 with: distribution: 'adopt' java-version: '17' - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - 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 - 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