ci: restore SampleApp Android APK upload to S3#3725
Merged
Conversation
Re-adds the S3 upload of the SampleApp release APK that powers the public download link (https://getstream.io/downloads/rn-sample-app.apk). This was dropped in #3334 when Android distribution was moved to Firebase App Distribution. The upload reuses the APK already built by the Fastlane step (no rebuild), runs on develop only, and keeps the object key rn-sample-app.apk so the existing public URL keeps working. Firebase distribution for internal testers is kept alongside it.
6 tasks
oliverlaz
added a commit
that referenced
this pull request
Jul 10, 2026
## π― Goal Follow-up to #3725 (merged), which restored the SampleApp Android APK upload to S3 that powers `https://getstream.io/downloads/rn-sample-app.apk`. That upload fails on the self-hosted `public` runner because the AWS CLI is not installed there (the original S3 job ran on GitHub-hosted `ubuntu-latest`, where `aws` is preinstalled). This PR makes the job install the AWS CLI when it is missing so the upload can succeed. ## π Implementation details Adds an `Ensure AWS CLI is available` step to the `build_and_deploy_android_firebase` job in [`sample-distribution.yml`](.github/workflows/sample-distribution.yml), before the AWS credentials/upload steps: - No-op when `aws` is already on `PATH` (so it costs nothing if the runner image gains the CLI later). - Otherwise installs AWS CLI v2 from the official bundle, architecture-aware (`x86_64` / `aarch64`). - Installs to a user-writable location (`$HOME/.local/...`) with no `sudo`, then appends the bin dir to `$GITHUB_PATH` so the subsequent `Upload APK to S3` step picks it up. - Runs on `develop` only, matching the rest of the S3 flow. ## π¨ UI Changes N/A β CI/workflow-only change, no UI impact. ## π§ͺ Testing CI-only change; verified by the `develop` pipeline rather than the example apps: 1. On merge to `develop`, the `build_and_deploy_android_firebase` job runs the new install step and logs the resolved `aws --version`. 2. Confirm the `Upload APK to S3` step now succeeds in the Actions logs. 3. Confirm `https://getstream.io/downloads/rn-sample-app.apk` serves the latest build. ## βοΈ Checklist - [ ] I have signed the [Stream CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform) (required) - [x] PR targets the `develop` branch - [ ] Documentation is updated - [ ] New code is tested in main example apps, including all possible scenarios - [ ] SampleApp iOS and Android - [ ] Expo iOS and Android
Contributor
|
π This PR is included in version 9.7.0 π The release is available on:
Your semantic-release bot π¦π |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
π― Goal
Restore the public download link for the SampleApp Android build:
https://getstream.io/downloads/rn-sample-app.apk.This S3 upload was removed in #3334 ("chore: add android build and deploy workflows and improve ios workflow"), which replaced the S3-based Android job with Firebase App Distribution. Firebase serves internal QA testers, but it dropped the public, unauthenticated download link that lives on our own domain. This PR brings that link back alongside Firebase.
π Implementation details
Re-adds the S3 upload as two steps in the existing
build_and_deploy_android_firebasejob insample-distribution.yml:aws-actions/configure-aws-credentials@v4(the previous code used the now-EOLv1), authenticating with theAWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEYsecrets.rn-sample-app.apkand runsaws s3 cp ... --sse AES256.Notable choices:
examples/SampleApp/app-build/reactnativesampleapp.apk, so the previous manualreact-native bundle+gradlew assembleReleasesteps are not reintroduced.rn-sample-app.apk) so the existing public URL keeps working.develop-only, matching the original behavior.π¨ UI Changes
N/A β CI/workflow-only change, no UI impact.
π§ͺ Testing
CI-only change; verified by the
developpipeline rather than the example apps:develop, thebuild_and_deploy_android_firebasejob runs the two new steps.Upload APK to S3step succeeds in the Actions logs.https://getstream.io/downloads/rn-sample-app.apkdownloads the latest build.βοΈ Checklist
developbranch