Startup Profiling 2 - Add options and sampling logic #2092
Workflow file for this run
This file contains 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: AGP Matrix Compatibility | |
on: | |
push: | |
branches: | |
- main | |
- release/** | |
pull_request: | |
jobs: | |
cancel-previous-workflow: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/cancel-workflow-action@01ce38bf961b4e243a6342cbade0dbc8ba3f0432 # pin@0.12.0 | |
with: | |
access_token: ${{ github.token }} | |
agp-matrix-compatibility: | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
agp: [ '8.0.0','8.1.0-alpha11' ] | |
integrations: [ true, false ] | |
name: AGP Matrix Release - AGP ${{ matrix.agp }} - Integrations ${{ matrix.integrations }} | |
env: | |
VERSION_AGP: ${{ matrix.agp }} | |
APPLY_SENTRY_INTEGRATIONS: ${{ matrix.integrations }} | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: Setup Gradle | |
uses: gradle/gradle-build-action@982da8e78c05368c70dac0351bb82647a9e9a5d2 # pin@v2 | |
- name: Setup Java Version | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup KVM | |
shell: bash | |
run: | | |
# check if virtualization is supported... | |
sudo apt install -y --no-install-recommends cpu-checker coreutils && echo "CPUs=$(nproc --all)" && kvm-ok | |
# allow access to KVM to run the emulator | |
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 | |
# Clean, build and release a test apk | |
- name: Make assembleUiTests | |
run: make assembleUiTests | |
# We stop gradle at the end to make sure the cache folders | |
# don't contain any lock files and are free to be cached. | |
- name: Make stop | |
run: make stop | |
# We tried to use the cache action to cache gradle stuff, but it made tests slower and timeout | |
- name: Run instrumentation tests | |
uses: reactivecircus/android-emulator-runner@99a4aac18b4df9b3af66c4a1f04c1f23fa10c270 # pin@v2 | |
with: | |
api-level: 30 | |
force-avd-creation: false | |
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
disable-animations: true | |
disable-spellchecker: true | |
target: 'aosp_atd' | |
channel: canary # Necessary for ATDs | |
script: ./gradlew sentry-android-integration-tests:sentry-uitest-android:connectedReleaseAndroidTest -DtestBuildType=release --daemon | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-results-AGP${{ matrix.agp }}-Integrations${{ matrix.integrations }} | |
path: | | |
**/build/reports/* | |
**/build/outputs/*/connected/* | |
**/build/outputs/mapping/release/* |