Skip to content

Commit

Permalink
Change baselineProfile.yml (#940)
Browse files Browse the repository at this point in the history
  • Loading branch information
l2hyunwoo authored Oct 21, 2024
1 parent c874c21 commit 8e505d1
Showing 1 changed file with 82 additions and 71 deletions.
153 changes: 82 additions & 71 deletions .github/workflows/baseline-profile.yml
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

0 comments on commit 8e505d1

Please sign in to comment.