-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
82 additions
and
71 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,75 +1,86 @@ | ||
# Workflow name | ||
name: baseline-profiles | ||
name: NightlyBaselineProfiles | ||
|
||
# Workflow title | ||
run-name: ${{ github.actor }} requested a workflow | ||
|
||
# This should be a manual trigger so this actions gets executed every time make a new pull request. | ||
# Change this event to what suits your project best. | ||
# Read more at https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows | ||
on: | ||
workflow_dispatch: | ||
|
||
# Environment variables (Optional) | ||
# Small projects might have signingConfigs locally. This could lead to failures on GitHub Actions. | ||
# If that's the case, upload your properties defined locally to GitHub Secrets. | ||
|
||
# On your signingConfigs, you can recover GitHub Secrets using: variable = System.getenv("VARIABLE") | ||
|
||
# Then uncomment this block properly defining your uploaded variables | ||
# env: | ||
# VARIABLE: ${{ secrets.VARIABLE }} | ||
schedule: | ||
- cron: '42 4 * * *' | ||
workflow_dispatch: | ||
|
||
# Read more at https://docs.github.com/en/actions/security-guides/encrypted-secrets | ||
|
||
# Jobs to executed on GitHub machines | ||
jobs: | ||
|
||
# Job name | ||
generate-baseline-profiles: | ||
|
||
# Operating system where the job gets to be executed | ||
runs-on: macos-latest | ||
|
||
# Job steps | ||
steps: | ||
|
||
# Checks your code out on the machine | ||
- uses: actions/checkout@v4 | ||
|
||
# Sets java up | ||
- uses: actions/setup-java@v4 | ||
with: | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
# Sets gradle up | ||
- name: Setup Gradle | ||
uses: gradle/[email protected] | ||
|
||
# Grants execute permission to gradle (safety step) | ||
- name: Grant Permissions to gradlew | ||
run: chmod +x gradlew | ||
|
||
# This allows us to build most of what we need without the emulator running | ||
# and using resources | ||
- name: Build app and benchmark | ||
run: ./gradlew :app:assembleBenchmark | ||
|
||
# Cleans managed device if previously settle and space currently is not available | ||
- name: Clean Managed Devices | ||
run: ./gradlew cleanManagedDevices --unused-only | ||
|
||
# Generates Baseline Profile | ||
- name: Generate Baseline Profile | ||
run: ./gradlew generateBaselineProfile -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile -Pandroid.experimental.testOptions.managedDevices.setupTimeoutMinutes=20 -Dorg.gradle.workers.max=4 | ||
|
||
# Create Pull Request | ||
- name: Create Pull Request | ||
uses: peter-evans/create-pull-request@v7 | ||
with: | ||
commit-message: "Generate baseline profiles" | ||
title: "Generate baseline profiles" | ||
delete-branch: true | ||
reviewers: l2hyunwoo | ||
branch: actions/baseline-profiles | ||
baseline_profiles: | ||
name: "Generate Baseline Profiles" | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
timeout-minutes: 60 | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Validate Gradle Wrapper | ||
uses: gradle/wrapper-validation-action@v1 | ||
|
||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
distribution: 'zulu' | ||
java-version: 17 | ||
|
||
- name: Setup Gradle | ||
uses: gradle/[email protected] | ||
|
||
- name: Grant Permissions to gradlew | ||
run: chmod +x gradlew | ||
|
||
|
||
- name: Add Local Properties | ||
env: | ||
API_KEY: ${{ secrets.SENTRY_DSN }} | ||
DATA_STORE_KEY: ${{ secrets.SENTRY_DSN }} | ||
SOPT_DEV_OPERATION_BASE_URL: ${{ secrets.SOPT_DEV_OPERATION_BASE_URL }} | ||
SOPT_OPERATION_BASE_URL: ${{ secrets.SOPT_OPERATION_BASE_URL }} | ||
DEV_API: ${{ secrets.SENTRY_DSN }} | ||
NEW_API: ${{ secrets.SENTRY_DSN }} | ||
KEY_ALIAS: ${{ secrets.SENTRY_DSN }} | ||
KEY_PASSWORD: ${{ secrets.SENTRY_DSN }} | ||
STORE_PASSWORD: ${{ secrets.SENTRY_DSN }} | ||
DEV_AMPLITUDE_KEY: ${{ secrets.SENTRY_DSN }} | ||
AMPLITUDE_KEY: ${{ secrets.SENTRY_DSN }} | ||
POKE_DATA_STORE_KEY: ${{ secrets.SENTRY_DSN }} | ||
run: | | ||
echo apiKey=\"$API_KEY\" >> ./local.properties | ||
echo dataStoreKey=\"$DATA_STORE_KEY\" >> ./local.properties | ||
echo devOperationApi=\"$SOPT_DEV_OPERATION_BASE_URL\" >> ./local.properties | ||
echo operationApi=\"$SOPT_OPERATION_BASE_URL\" >> ./local.properties | ||
echo devApi=\"$DEV_API\" >> ./local.properties | ||
echo newApi=\"$NEW_API\" >> ./local.properties | ||
echo keyAlias=\"KEY_ALIAS\" >> ./local.properties | ||
echo keyPassword=\"KEY_PASSWORD\" >> ./local.properties | ||
echo storePassword=\"STORE_PASSWORD\" >> ./local.properties | ||
echo devAmplitudeKey=\"$DEV_AMPLITUDE_KEY\" >> ./local.properties | ||
echo amplitudeKey=\"$AMPLITUDE_KEY\" >> ./local.properties | ||
echo pokeDataStoreKey=\"$POKE_DATA_STORE_KEY\" >> ./local.properties | ||
- name: Access Firebase Service | ||
run: echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > ./app/google-services.json | ||
|
||
- name: Generate Keystore File | ||
run: | | ||
echo ${{ secrets.KEYSTORE }} > ./keystore/keystore.b64 | ||
base64 -d -i ./keystore/keystore.b64 > ./keystore/releaseKey.jks | ||
- name: Build app and benchmark | ||
run: ./gradlew :app:assembleBenchmark # change the 'app' with your app module's name | ||
|
||
- name: Clean Managed Devices | ||
run: ./gradlew cleanManagedDevices --unused-only | ||
|
||
- name: Generate Baseline Profile | ||
run: ./gradlew generateBaselineProfile -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile -Pandroid.experimental.testOptions.managedDevices.setupTimeoutMinutes=20 -Dorg.gradle.workers.max=4 | ||
|
||
- name: Create Pull Request | ||
uses: peter-evans/create-pull-request@v5 | ||
with: | ||
commit-message: "Generate baseline profiles" | ||
title: "Generate baseline profiles" | ||
delete-branch: true | ||
branch: actions/baseline-profiles |