Skip to content

Task: Baseline CI - Add Github workflow to build Baseline profile #16

Task: Baseline CI - Add Github workflow to build Baseline profile

Task: Baseline CI - Add Github workflow to build Baseline profile #16

name: Baseline Profile generator
on:
pull_request:
workflow_dispatch:
# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
generate-baseline-profile:
name: Generate Baseline Profile
runs-on: ubuntu-latest
timeout-minutes: 120
env:
TERM: dumb
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
ls /dev/kvm
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17.0.6
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Validate gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Create Local Properties File
run: touch local.properties
## - name: Install GMD image for baseline profile generation
## run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager "system-images;android-33;aosp_atd;x86_64"
- name: Accept Android licenses
run: yes | "$ANDROID_HOME"/cmdline-tools/latest/bin/sdkmanager --licenses || true
# Cleans managed device if previously settle and space currently is not available
- name: Clean Managed Devices
run: ./gradlew cleanManagedDevices --unused-only
## enabledRules=BaselineProfile:
## Required to skip macrobenchmark tests.
## Read more at https://developer.android.com/topic/performance/benchmarking/benchmarking-in-ci#real-devices
## Read more at https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview#configuration-errors
## gradle.workers.max:
## Required to avoid running multiple managed device tests concurrently. Read more at https://issuetracker.google.com/issues/193118030
- name: Generate Baseline Profile
run: ./gradlew :macrobenchmark:forlago:pixel6Api31BenchmarkAndroidTest
-Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=baselineprofile
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
- name: List generated files
run: |
ls -R /home/runner/work/Forlago/Forlago/macrobenchmark/forlago/build/outputs/managed_device_android_test_additional_output/benchmark/pixel6Api31
- name: Move & Rename Baseline Profile
run: mv -f /home/runner/work/Forlago/Forlago/macrobenchmark/forlago/build/outputs/managed_device_android_test_additional_output/benchmark/pixel6Api31/BaselineProfileGenerator_generate-baseline-prof.txt apps/forlago/src/main/baselineProfiles/baseline-prof.txt
- name: Create Pull Request
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a
with:
token: ${{ secrets.MOBILE_CI_GITHUB_TOKEN }}
commit-message: 'Update Baseline Profile'
committer: GitHub <[email protected]>
branch: task/baseline-profile
delete-branch: true
title: 'Task: Update Baseline Profile'
body: 'Auto-generated PR'