successfully downloaded text file (SHA: d36809798d3cefb866282e5143455f35c702975d) # GMD smoke tests on CI. # # GitHub-hosted `ubuntu-latest` runners expose `/dev/kvm` for CPU acceleration # (the "Enable KVM" step installs a udev rule so the runner user can access # it), but they have no GPU/Vulkan driver — so the GPU mode is forced to # `swiftshader_indirect`. Note: swiftshader is documented to crash on Linux # kernel >= 6.17 (see TESTING_SETUP.md). GitHub-hosted runners are currently # on kernel ~6.8, but if that changes this workflow will need a different # harness. # # To keep Free-tier Actions minutes in budget, this workflow is path-filtered # on PRs — it only runs when files that could affect the smoke surface change. name: Smoke permissions: contents: read on: push: branches: [ "master" ] pull_request: branches: [ "master" ] paths: - 'app/src/androidTest/**' - 'app/src/main/**/ui/**' - 'app/build.gradle.kts' - 'gradle/libs.versions.toml' - 'gradle.properties' - '.github/workflows/smoke.yml' workflow_dispatch: concurrency: group: smoke-${{ github.ref }} cancel-in-progress: true jobs: smoke: name: GMD Smoke Tests runs-on: ubuntu-latest timeout-minutes: 45 steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Enable KVM 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: Run GMD Smoke Tests run: ./gradlew pixel2api33Check -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect - name: Upload Managed Device Reports if: failure() uses: actions/upload-artifact@v4 with: name: gmd-test-reports path: | app/build/reports/androidTests/managedDevice/ app/build/outputs/androidTest-results/managedDevice/ if-no-files-found: warn retention-days: 7