Remove kotlinCompilerExtensionVersion #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Presubmit | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| inputs: | |
| runner: | |
| description: "Runner (host machine) to use for all jobs in presubmit" | |
| required: false | |
| type: string | |
| concurrency: | |
| group: build-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| JDK_VERSION: 17 | |
| DISTRIBUTION: 'zulu' | |
| jobs: | |
| choose_runner: | |
| name: Choose Runner | |
| uses: ./.github/workflows/ChooseRunner.yaml | |
| with: | |
| forced_runner: ${{ inputs.runner }} | |
| build: | |
| name: Build | |
| needs: choose_runner | |
| runs-on: ${{ needs.choose_runner.outputs.chosen_runner }} | |
| timeout-minutes: 120 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Validate Gradle Wrapper | |
| uses: gradle/actions/wrapper-validation@v3 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: ${{ env.DISTRIBUTION }} | |
| java-version: ${{ env.JDK_VERSION }} | |
| cache: gradle | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | |
| - name: Build stable debug gradle target | |
| run: ./gradlew assembleStableDebug --parallel --build-cache | |
| - name: Upload build outputs (APKs) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-outputs | |
| path: app/build/outputs | |
| - name: Upload build reports | |
| if: always() | |
| continue-on-error: true | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-reports | |
| path: "*/build/reports" | |
| test: | |
| name: Unit Tests | |
| needs: choose_runner | |
| runs-on: ${{ needs.choose_runner.outputs.chosen_runner }} | |
| timeout-minutes: 120 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Validate Gradle Wrapper | |
| uses: gradle/actions/wrapper-validation@v3 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: ${{ env.DISTRIBUTION }} | |
| java-version: ${{ env.JDK_VERSION }} | |
| cache: gradle | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | |
| continue-on-error: true | |
| - name: Run local tests | |
| run: ./gradlew test --parallel --build-cache | |
| - name: Upload test reports on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-reports | |
| path: "*/build/reports/tests" | |
| android-test: | |
| name: Instrumentation Tests (${{ matrix.device.name }}) | |
| needs: choose_runner | |
| runs-on: ${{ needs.choose_runner.outputs.chosen_runner }} | |
| timeout-minutes: 120 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| device: | |
| - { name: pixel2Api28, img: 'system-images;android-28;google_apis;x86' } | |
| - { name: pixel8Api34, img: 'system-images;android-34;aosp_atd;x86_64' } | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Enable KVM group perms | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: ${{ env.DISTRIBUTION }} | |
| java-version: ${{ env.JDK_VERSION }} | |
| - name: Install Emulator | |
| run: | | |
| yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --install "${{ matrix.device.img }}" | |
| - name: Accept licenses | |
| run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true | |
| - name: Run instrumentation tests | |
| uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| arguments: ${{ matrix.device.name }}StableDebugAndroidTest | |
| cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | |
| - name: Upload instrumentation test reports and logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: instrumentation-test-reports-${{ matrix.device.name }} | |
| path: | | |
| */build/reports/androidTests/**/${{ matrix.device.name }} | |
| */build/outputs/androidTest-results/**/${{ matrix.device.name }} | |
| spotless: | |
| name: Spotless Check | |
| needs: choose_runner | |
| runs-on: ${{ needs.choose_runner.outputs.chosen_runner }} | |
| timeout-minutes: 60 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Validate Gradle Wrapper | |
| uses: gradle/actions/wrapper-validation@v3 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: ${{ env.DISTRIBUTION }} | |
| java-version: ${{ env.JDK_VERSION }} | |
| cache: gradle | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | |
| - name: Spotless Check | |
| run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --parallel --build-cache |