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:

  1. Select "Build" as your workflow type
  2. Fill in the basic configuration options
  3. Choose your storage provider from the dropdown menu
  4. The app will display the required secrets automatically

Storage Options at a Glance

Quick comparison of available storage options in the web app

ProviderEase of SetupBest ForUser Access
GitHub Artifacts★★★★★Development teams, quick testingGitHub users with repo access
Firebase App Distribution★★★☆☆Testing groups, stakeholder previewsAnyone with email invitation
Google Drive★★☆☆☆Team sharing, long-term storageAnyone with sharing permissions
Amazon S3★☆☆☆☆Enterprise, custom distributionConfigurable 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

FeatureDetails
Ease of setup★★★★★ (Built into GitHub Actions)
External sharing★☆☆☆☆ (Limited to GitHub users with repository access)
Retention period90 days (configurable, but with maximum limit)
Size limits2GB per artifact
Access controlBased on repository permissions
CostFree (included with GitHub Actions)

Setting Up GitHub Artifacts in the Web App

Step-by-Step Configuration

  1. Select your workflow type

    Choose "Build" from the workflow type dropdown in the web app

  2. Configure platform settings

    Select Android, iOS, or both platforms and your build variant

  3. Select storage provider

    Choose "GitHub Artifacts" from the storage dropdown menu

  4. No additional secrets needed

    GitHub Artifacts uses the built-in GITHUB_TOKEN automatically

How to Access Your Builds

After the workflow completes:

  1. Go to your GitHub repository
  2. Click on the "Actions" tab
  3. Select the workflow run that built your app
  4. In the run summary, find the "Artifacts" section
  5. Download the ZIP file containing your build files

How it works behind the scenes

When using GitHub storage, the workflow will:

  1. Build the application for the specified platform
  2. Collect the build artifacts (APK, AAB, IPA files)
  3. Upload them using the actions/upload-artifact@v4 action
  4. 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

FeatureDetails
Ease of setup★★★☆☆ (Requires Firebase project setup)
External sharing★★★★★ (Email invitations to any tester)
Retention periodUnlimited
Size limits1GB per app
Tester managementExcellent (groups, permissions, email invites)
Feedback collectionYes (in-app feedback)
CostFree tier available

Setup Requirements

  1. Create a Firebase project
  2. Register your Android/iOS app in Firebase
  3. Get your Firebase App ID
  4. Generate a Firebase CLI token with: firebase login:ci

Required secrets:

  • FIREBASE_APP_ID: Your Firebase App ID
  • FIREBASE_TOKEN: Firebase CLI authentication token

Setting Up Firebase Distribution in the Web App

Step-by-Step Configuration

  1. Select your workflow type

    Choose "Build" from the workflow type dropdown

  2. Configure platform settings

    Select Android, iOS, or both platforms and your build variant

  3. Select storage provider

    Choose "Firebase App Distribution" from the storage dropdown

  4. Configure Firebase options

    Add tester groups (comma-separated) and release notes

  5. 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:

  1. Testers will receive email notifications with download links
  2. Testers can access builds through the Firebase App Tester app on their devices
  3. Project admins can view all distributions in the Firebase console
  4. 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

FeatureDetails
Ease of setup★★☆☆☆ (Requires OAuth configuration)
External sharing★★★★☆ (Flexible sharing options)
Retention periodUnlimited (within storage quota)
Size limits15GB free per Google account
Organization optionsFolders, metadata, searchable
Cost15GB free, paid plans available

Setup Requirements

  1. Create a Google Cloud Platform project
  2. Enable the Google Drive API
  3. Create OAuth credentials (client ID and secret)
  4. Generate a refresh token with appropriate scopes

Required secrets:

  • GOOGLE_DRIVE_CLIENT_ID: OAuth client ID
  • GOOGLE_DRIVE_CLIENT_SECRET: OAuth client secret
  • GOOGLE_DRIVE_REFRESH_TOKEN: OAuth refresh token
  • GOOGLE_DRIVE_FOLDER_ID: (optional) Parent folder ID

Setting Up Google Drive in the Web App

Step-by-Step Configuration

  1. Select your workflow type

    Choose "Build" from the workflow type dropdown

  2. Configure platform settings

    Select Android, iOS, or both platforms and your build variant

  3. Select storage provider

    Choose "Google Drive" from the storage dropdown

  4. Configure Google Drive options

    Set folder path and sharing email addresses

  5. Add required secrets

    Note the required OAuth credentials to add to GitHub

How to Access Your Builds

After the workflow completes:

  1. Log in to Google Drive with the account that owns the credentials
  2. Navigate to the folder path you specified in the configuration
  3. Files will be named with app name, version, build type, and timestamp
  4. People listed in the "shareWith" option will receive email notifications
  5. 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

FeatureDetails
Ease of setup★☆☆☆☆ (Requires AWS account and IAM setup)
External sharing★★★☆☆ (Pre-signed URLs or public access)
Retention periodConfigurable with lifecycle policies
Size limitsUnlimited
Security featuresAdvanced IAM policies, encryption, versioning
CostPay as you go

Setup Requirements

  1. Create an AWS account
  2. Create an S3 bucket
  3. Configure bucket policies
  4. Create IAM user with S3 permissions
  5. Generate access key and secret key

Required secrets:

  • AWS_ACCESS_KEY_ID: AWS access key with S3 permissions
  • AWS_SECRET_ACCESS_KEY: Corresponding secret key
  • AWS_BUCKET_NAME: Target S3 bucket name
  • AWS_REGION: (optional) AWS region

Setting Up Amazon S3 in the Web App

Step-by-Step Configuration

  1. Select your workflow type

    Choose "Build" from the workflow type dropdown

  2. Configure platform settings

    Select Android, iOS, or both platforms and your build variant

  3. Select storage provider

    Choose "Amazon S3" from the storage dropdown

  4. Configure S3 options

    Set S3 key prefix (folder path) and access settings

  5. Add required secrets

    Note the required AWS credentials to add to GitHub

How to Access Your Builds

After the workflow completes:

  1. Log in to your AWS Management Console
  2. Navigate to the S3 bucket you specified in your configuration
  3. Browse to the key prefix (folder path) where your builds are stored
  4. Download directly or generate pre-signed URLs for temporary access
  5. 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

  1. Select "Build" as your workflow type
  2. Configure your platform settings as usual
  3. In the storage provider dropdown, select "Multiple Storage Options"
  4. Check the boxes for all storage providers you want to use
  5. Configure the options for each selected provider
  6. 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:

  1. Build your application once
  2. Upload the same build artifacts to each selected storage provider
  3. Apply provider-specific options to each upload (e.g., tester groups for Firebase)
  4. Report success/failure for each storage provider separately
  5. 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.