Storage Options
Configure where and how build artifacts are stored
When building your React Native app using the workflow builder, you need to decide where to store your build artifacts (APK, AAB, or IPA files). The web app provides multiple storage options to suit different needs, from simple testing to complex distribution workflows.
This guide helps you choose the best storage option for your specific needs and shows you how to configure each one directly in the web app interface.
Choosing the Right Storage Option
Your choice depends on factors like:
- Who needs access to your builds
- How long you need to store them
- What level of security you require
- Which existing services you already use
How to Configure in the Web App
When creating a build workflow in the web app:
- Select "Build" as your workflow type
- Fill in the basic configuration options
- Choose your storage provider from the dropdown menu
- The app will display the required secrets automatically
Storage Options at a Glance
Quick comparison of available storage options in the web app
Provider | Ease of Setup | Best For | User Access |
---|---|---|---|
GitHub Artifacts | ★★★★★ | Development teams, quick testing | GitHub users with repo access |
Firebase App Distribution | ★★★☆☆ | Testing groups, stakeholder previews | Anyone with email invitation |
Google Drive | ★★☆☆☆ | Team sharing, long-term storage | Anyone with sharing permissions |
Amazon S3 | ★☆☆☆☆ | Enterprise, custom distribution | Configurable with IAM policies |
GitHub Actions Artifacts
Store build artifacts directly in GitHub Actions using the built-in artifacts system
When to Use GitHub Artifacts
- You want the simplest setup (no additional accounts required)
- Your builds are only needed by developers and GitHub users
- Your artifacts are relatively small (<2GB)
- You need builds stored temporarily (90 days maximum)
Features and Limitations
Feature | Details |
---|---|
Ease of setup | ★★★★★ (Built into GitHub Actions) |
External sharing | ★☆☆☆☆ (Limited to GitHub users with repository access) |
Retention period | 90 days (configurable, but with maximum limit) |
Size limits | 2GB per artifact |
Access control | Based on repository permissions |
Cost | Free (included with GitHub Actions) |
Setting Up GitHub Artifacts in the Web App
Step-by-Step Configuration
- Select your workflow type
Choose "Build" from the workflow type dropdown in the web app
- Configure platform settings
Select Android, iOS, or both platforms and your build variant
- Select storage provider
Choose "GitHub Artifacts" from the storage dropdown menu
- No additional secrets needed
GitHub Artifacts uses the built-in GITHUB_TOKEN automatically
How to Access Your Builds
After the workflow completes:
- Go to your GitHub repository
- Click on the "Actions" tab
- Select the workflow run that built your app
- In the run summary, find the "Artifacts" section
- Download the ZIP file containing your build files
How it works behind the scenes
When using GitHub storage, the workflow will:
- Build the application for the specified platform
- Collect the build artifacts (APK, AAB, IPA files)
- Upload them using the
actions/upload-artifact@v4
action - Make them available for download from the workflow run page
Artifacts are automatically named with your app name and build type for easy identification.
Firebase App Distribution
Distribute builds to testers and stakeholders with Firebase's specialized mobile app distribution platform
When to Use Firebase App Distribution
- You need to distribute builds to external testers
- You want email notifications for new builds
- You need to organize testers into groups
- You want in-app feedback collection
- You need app crash reporting integration
Features and Limitations
Feature | Details |
---|---|
Ease of setup | ★★★☆☆ (Requires Firebase project setup) |
External sharing | ★★★★★ (Email invitations to any tester) |
Retention period | Unlimited |
Size limits | 1GB per app |
Tester management | Excellent (groups, permissions, email invites) |
Feedback collection | Yes (in-app feedback) |
Cost | Free tier available |
Setup Requirements
- Create a Firebase project
- Register your Android/iOS app in Firebase
- Get your Firebase App ID
- Generate a Firebase CLI token with:
firebase login:ci
Required secrets:
FIREBASE_APP_ID
: Your Firebase App IDFIREBASE_TOKEN
: Firebase CLI authentication token
Setting Up Firebase Distribution in the Web App
Step-by-Step Configuration
- Select your workflow type
Choose "Build" from the workflow type dropdown
- Configure platform settings
Select Android, iOS, or both platforms and your build variant
- Select storage provider
Choose "Firebase App Distribution" from the storage dropdown
- Configure Firebase options
Add tester groups (comma-separated) and release notes
- Add required secrets
Note the required secrets (FIREBASE_APP_ID, FIREBASE_TOKEN) to add to GitHub
How to Access Your Builds
After the workflow completes:
- Testers will receive email notifications with download links
- Testers can access builds through the Firebase App Tester app on their devices
- Project admins can view all distributions in the Firebase console
- Build status will be visible in both GitHub Actions and Firebase console
Pro Tips for Firebase Distribution
- Use descriptive release notes to help testers understand what to test
- Organize testers into logical groups (e.g., "qa", "product-team", "beta-users")
- Enable in-app feedback collection in Firebase console
- Use build version variables in release notes to automatically include version numbers
Google Drive
Store build artifacts in Google Drive with flexible sharing options
When to Use Google Drive
- You need long-term storage of build artifacts
- You want to organize builds in folder hierarchies
- You need to share builds with specific people via email
- You want control over access permissions
- You need to store supplementary files alongside builds
Features and Limitations
Feature | Details |
---|---|
Ease of setup | ★★☆☆☆ (Requires OAuth configuration) |
External sharing | ★★★★☆ (Flexible sharing options) |
Retention period | Unlimited (within storage quota) |
Size limits | 15GB free per Google account |
Organization options | Folders, metadata, searchable |
Cost | 15GB free, paid plans available |
Setup Requirements
- Create a Google Cloud Platform project
- Enable the Google Drive API
- Create OAuth credentials (client ID and secret)
- Generate a refresh token with appropriate scopes
Required secrets:
GOOGLE_DRIVE_CLIENT_ID
: OAuth client IDGOOGLE_DRIVE_CLIENT_SECRET
: OAuth client secretGOOGLE_DRIVE_REFRESH_TOKEN
: OAuth refresh tokenGOOGLE_DRIVE_FOLDER_ID
: (optional) Parent folder ID
Setting Up Google Drive in the Web App
Step-by-Step Configuration
- Select your workflow type
Choose "Build" from the workflow type dropdown
- Configure platform settings
Select Android, iOS, or both platforms and your build variant
- Select storage provider
Choose "Google Drive" from the storage dropdown
- Configure Google Drive options
Set folder path and sharing email addresses
- Add required secrets
Note the required OAuth credentials to add to GitHub
How to Access Your Builds
After the workflow completes:
- Log in to Google Drive with the account that owns the credentials
- Navigate to the folder path you specified in the configuration
- Files will be named with app name, version, build type, and timestamp
- People listed in the "shareWith" option will receive email notifications
- You can manually adjust sharing permissions in Google Drive if needed
Pro Tips for Google Drive
- Use a dedicated service account for CI/CD workflows instead of personal account
- Create a consistent folder structure with date-based subfolders
- Use Google Drive File Stream for quick access to builds on your desktop
- Consider setting up automatic cleanup of old builds using Google Apps Script
Amazon S3
Store build artifacts in Amazon S3 with scalable, secure cloud storage
When to Use Amazon S3
- You need secure, scalable storage
- You have existing AWS infrastructure
- You want fine-grained access control policies
- You need to integrate with other AWS services
- You want to host a download portal or distribution site
Features and Limitations
Feature | Details |
---|---|
Ease of setup | ★☆☆☆☆ (Requires AWS account and IAM setup) |
External sharing | ★★★☆☆ (Pre-signed URLs or public access) |
Retention period | Configurable with lifecycle policies |
Size limits | Unlimited |
Security features | Advanced IAM policies, encryption, versioning |
Cost | Pay as you go |
Setup Requirements
- Create an AWS account
- Create an S3 bucket
- Configure bucket policies
- Create IAM user with S3 permissions
- Generate access key and secret key
Required secrets:
AWS_ACCESS_KEY_ID
: AWS access key with S3 permissionsAWS_SECRET_ACCESS_KEY
: Corresponding secret keyAWS_BUCKET_NAME
: Target S3 bucket nameAWS_REGION
: (optional) AWS region
Setting Up Amazon S3 in the Web App
Step-by-Step Configuration
- Select your workflow type
Choose "Build" from the workflow type dropdown
- Configure platform settings
Select Android, iOS, or both platforms and your build variant
- Select storage provider
Choose "Amazon S3" from the storage dropdown
- Configure S3 options
Set S3 key prefix (folder path) and access settings
- Add required secrets
Note the required AWS credentials to add to GitHub
How to Access Your Builds
After the workflow completes:
- Log in to your AWS Management Console
- Navigate to the S3 bucket you specified in your configuration
- Browse to the key prefix (folder path) where your builds are stored
- Download directly or generate pre-signed URLs for temporary access
- For public buckets, direct download links will work without authentication
Pro Tips for Amazon S3
- Create a dedicated IAM user with minimal permissions for CI/CD uploads
- Set up lifecycle rules to automatically delete old builds after a certain period
- Use CloudFront to create a distribution network for faster downloads globally
- Consider enabling versioning on your bucket for build history
- Implement proper bucket policies to control access precisely
Using Multiple Storage Providers
Store build artifacts in multiple locations simultaneously for different purposes
Why Use Multiple Storage Options?
- Different Audience Needs
Developers might prefer GitHub Artifacts while QA testers need Firebase App Distribution
- Backup and Redundancy
Store critical builds in multiple locations for safety
- Short-term and Long-term Storage
Use GitHub for temporary access and S3/Drive for long-term archiving
Setting Up Multiple Storage in the Web App
- Select "Build" as your workflow type
- Configure your platform settings as usual
- In the storage provider dropdown, select "Multiple Storage Options"
- Check the boxes for all storage providers you want to use
- Configure the options for each selected provider
- The web app will show all required secrets across all selected providers
How Multiple Storage Works
When you configure multiple storage options, the workflow builder will:
- Build your application once
- Upload the same build artifacts to each selected storage provider
- Apply provider-specific options to each upload (e.g., tester groups for Firebase)
- Report success/failure for each storage provider separately
- Provide links to each storage location in the workflow summary
Making the Right Choice for Your Team
Recommendations to help you choose the optimal storage solution
Recommended for Small Teams
For teams with fewer than 10 developers and simple distribution needs:
- Primary: GitHub Artifacts
Simple setup with no additional accounts required
- Optional Secondary: Firebase
For sharing builds with non-technical stakeholders
Recommended for Enterprise Teams
For larger organizations with complex distribution requirements:
- Primary: Amazon S3 with CloudFront
Scalable, secure, with fine-grained access control
- Secondary: Firebase App Distribution
For organized test groups and feedback collection
Storage Best Practices
GitHub Artifacts
- Use for developer and CI builds
- Enable workflow artifact retention settings
- Consider size limitations when building multiple architectures
- Use for short-term storage and quick team access
Firebase App Distribution
- Organize testers into logical groups
- Provide detailed release notes
- Configure tester permissions appropriately
- Enable in-app feedback for better tester engagement
Google Drive
- Create a dedicated service account
- Use a consistent folder structure
- Set up appropriate sharing permissions
- Implement auto-cleanup of older builds
Amazon S3
- Configure lifecycle policies for old builds
- Use bucket policies for access control
- Consider setting up CloudFront for download distribution
- Use versioning for build history tracking
Need Help with Your Storage Strategy?
Explore the options in the web app interface for detailed guidance on configuring each storage option.