Skip to content

feat(clustering): propagate contentDescription to marker options for accessibility #61

feat(clustering): propagate contentDescription to marker options for accessibility

feat(clustering): propagate contentDescription to marker options for accessibility #61

Workflow file for this run

# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Opens every demo in maps-app on an emulator, directly and through the menu, and checks that it
# starts, its map loads, and it survives a zoom and a configuration change. The tests live in
# maps-app/src/androidTest/.../compose/smoke and are excluded from the instrumentation workflow.
name: Demo smoke test
on:
repository_dispatch:
types: [test]
pull_request:
branches-ignore: ['gh-pages']
workflow_dispatch:
permissions:
contents: read
jobs:
demo-smoke-test:
# Ubuntu runners support KVM, which boots the API 36 emulator in about a minute.
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout Repo
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
# Secrets are not available to pull requests from forks or Dependabot. Without a real key
# the maps never load, so skip the emulator run instead of reporting noise.
- name: Check for Maps API key
id: key
env:
MAPS_API_KEY: ${{ secrets.ACTIONS_API_KEY }}
run: |
if [ -z "$MAPS_API_KEY" ]; then
echo "::notice::ACTIONS_API_KEY is not available, skipping the demo smoke test."
echo "available=false" >> "$GITHUB_OUTPUT"
else
echo "MAPS_API_KEY=$MAPS_API_KEY" > secrets.properties
echo "available=true" >> "$GITHUB_OUTPUT"
fi
- name: Set up JDK 21
if: steps.key.outputs.available == 'true'
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
with:
java-version: '21'
distribution: 'temurin'
- name: Setup Gradle
if: steps.key.outputs.available == 'true'
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0
- name: Enable KVM
if: steps.key.outputs.available == 'true'
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: Build demo and test APKs
if: steps.key.outputs.available == 'true'
run: ./gradlew :maps-app:assembleDebug :maps-app:assembleDebugAndroidTest --stacktrace
- name: Run demo smoke test
if: steps.key.outputs.available == 'true'
uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # v2.38.0
with:
# Emulators never update Google Play services, so the image's bundled version is what the
# maps run on. Older images bundle a version where adding advanced markers crashes inside
# Play services. API 36 images bundle 25.26, which works.
api-level: 36
target: google_apis
arch: x86_64
disable-animations: true
script: >-
./gradlew :maps-app:connectedDebugAndroidTest --stacktrace
-Pandroid.testInstrumentationRunnerArguments.package=com.google.maps.android.compose.smoke
-Pandroid.testInstrumentationRunnerArguments.requireMapLoaded=true
- name: Upload test reports
if: always() && steps.key.outputs.available == 'true'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: demo-smoke-test-reports
path: |
maps-app/build/reports/androidTests
maps-app/build/outputs/androidTest-results