diff --git a/.github/workflows/identity_pull_request.yml b/.github/workflows/identity_pull_request.yml new file mode 100644 index 00000000000..0fa2d628b7d --- /dev/null +++ b/.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 \ No newline at end of file