Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update build to rely on BP Gradle plugin #265

Merged
merged 1 commit into from
Dec 4, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 7 additions & 44 deletions .github/workflows/generate-bp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,51 +63,14 @@ jobs:
- name: Clean GMD
run: ./gradlew cleanManagedDevices --unused-only

# Runs all Baseline Profiles generators on Gradle Managed Device
# If the module contains both benchmarks and generators, we need to filter just the generators,
# because benchmarks should be run on a physical device and thus would fail by default.
- name: Run generator with GMD
uses: nick-fields/retry@v2
with:
max_attempts: 2
command: >
./gradlew :app:generateBaselineProfile
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
-Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile

- name: Upload Logcat logs
uses: actions/upload-artifact@v3
if: always()
with:
name: "Logcat"
path: MacrobenchmarkSample/baselineProfile/build/outputs/androidTest-results/managedDevice/pixel6Api31/logcat-*.txt

# Upload all the generated profiles to artifacts
- name: Upload generated profiles
uses: actions/upload-artifact@v3
with:
name: "Baseline Profiles"
path: MacrobenchmarkSample/app/src/release/generated/baselineProfiles/*.txt

# Create a PR with the generated Baseline Profiles
- name: Create PR with generated profiles
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.ANDROID_DEVREL_BOT_TOKEN }}
commit-message: '[Generated] Baseline Profiles'
committer: BP Bot <[email protected]>
author: BP Bot <[email protected]>
title: '[Generated] Baseline Profiles'
body: 'Updates baseline profiles'
reviewers: ${{ github.actor }}
branch: bot/update-baseline-profiles

# If you generate the rules before producing your production app, you need to build it here with the profile.
# We use benchmark variant, because release variant is not specified,
# but generally this is where you want to generate your production version of your app
# With the baseline profile Gradle plugin, release variants generate baseline profiles.
- name: Build production app
run: >
./gradlew assembleRelease
run: ./gradlew assembleRelease
-Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
-Pandroid.experimental.androidTest.numManagedDeviceShards=1
-Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1

- name: Upload app with Baseline Profile
uses: actions/upload-artifact@v3
Expand Down