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

[Identity] Add an action to analyze binary size for Identity example app with emerge tools #5397

Merged
merged 9 commits into from Aug 12, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/identity_pull_request.yml
@@ -0,0 +1,97 @@
name: identity-example size diff
on:
pull_request:
paths:
- 'identity/**'
- 'stripe-core/**'
- 'camera-core/**'
- 'dependencies.gradle'
jobs:
# Checkout base branch and build the APK
build-base:
name: Build base
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.base_ref }}
- name: Build base branch
run: ./gradlew :identity-example:assembleRelease && mv identity-example/build/outputs/apk/theme1/release/identity-example-theme1-release-unsigned.apk identity-example/build/outputs/apk/theme1/release/identity-example-release-base.apk
- name: Upload APK
uses: actions/upload-artifact@v1
with:
name: apk
path: identity-example/build/outputs/apk/theme1/release/identity-example-release-base.apk

# Checkout PR branch and build the APK
build-pr:
name: Build PR
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build PR branch
run: ./gradlew :identity-example:assembleRelease && mv identity-example/build/outputs/apk/theme1/release/identity-example-theme1-release-unsigned.apk identity-example/build/outputs/apk/theme1/release/identity-example-release-pr.apk
- name: Upload APK
uses: actions/upload-artifact@v1
with:
name: apk
path: identity-example/build/outputs/apk/theme1/release/identity-example-release-pr.apk

# Execute Diffuse only when the two APKs are built successfully
diffuse:
needs: [ build-base, build-pr ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download APKs
uses: actions/download-artifact@v1
with:
name: apk
- name: diffuse
id: diffuse
uses: usefulness/diffuse-action@v1
with:
old-file-path: apk/identity-example-release-base.apk
new-file-path: apk/identity-example-release-pr.apk

# Post comment with output

- uses: peter-evans/find-comment@v1
id: find_comment
with:
issue-number: ${{ github.event.pull_request.number }}
body-includes: Diffuse output

- uses: peter-evans/create-or-update-comment@v1
if: ${{ steps.diffuse.outputs.diff-raw != null || steps.find_comment.outputs.comment-id != null }}
with:
body: |
Diffuse output:

${{ steps.diffuse.outputs.diff-gh-comment }}
edit-mode: replace
comment-id: ${{ steps.find_comment.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
token: ${{ secrets.GITHUB_TOKEN }}

- name: Upload diffuse output
uses: actions/upload-artifact@v2
with:
name: diffuse-output
path: ${{ steps.diffuse.outputs.diff-file }}

# Use emerge tools to analyze the example app size
apk-size-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Generate Android release bundle
run: ./gradlew :identity-example:bundleRelease
- name: Upload artifact to Emerge
uses: EmergeTools/emerge-upload-action@v1.0.2
with:
artifact_path: identity-example/build/outputs/bundle/theme1Release/identity-example-theme1-release.aab
emerge_api_key: ${{ secrets.EMERGE_API_KEY }}
build_type: release # Optional, change if your workflow builds a specific type