Firebase App Distribution Task
Overview
Firebase App Distribution makes distributing your apps to trusted testers painless. By getting your apps onto testers' devices quickly, you can gather feedback early and often. This Azure DevOps extension provides a seamless way to integrate Firebase App Distribution into your CI/CD pipeline.
Task Configuration
Required Parameters
🔑 Private Key File Path
- Description: Enter the path to the private key obtained from the Download secure file task
- Example:
$(PrivateKeySecureFile.secureFilePath)
📦 Binary File Path
- Description: Enter the path to the file you want to upload
- Supported Formats:
*.ipa, *.apk, *.aab, and other binary formats
- Wildcard Support: Yes
- Examples:
$(System.DefaultWorkingDirectory)/**/*.apk
$(Agent.BuildDirectory)/**/app-release.aab
/path/to/app.ipa
🆔 App ID
- Description: Your Firebase App ID from the console
- Location: Firebase Console → Project Settings → General Settings
- Format: Usually in format
1:123456789:android:abcdef123456
- Reference: Find your App ID
👥 Tester Groups
- Description: Tester groups that should have access to the app
- Format: Comma-separated values
- Examples:
qa-team
beta-testers, internal-team
developers, qa-team, stakeholders
Release Notes Configuration
The task provides flexible options for adding release notes to your distribution:
Release Notes Method
- Options:
Release Notes - Enter notes directly in the task
Release Notes File Path - Load notes from a file
Option 1: Direct Release Notes
- Character Limit: 5,000 characters
- Resizable: Yes (15 rows default)
- Description: Enter release notes directly in the task configuration
Example:
🚀 Version 2.1.0 Release Notes
✨ New Features:
- Enhanced user authentication
- Improved offline sync
- New dashboard widgets
🐛 Bug Fixes:
- Fixed login crash on Android 12
- Resolved memory leak in image loading
- Fixed push notification delays
⚠️ Known Issues:
- Dark mode toggle may require app restart
Option 2: Release Notes File
- Description: Path to a text file containing release notes for the app distribution
- Priority: File content takes precedence over direct release notes if both are provided
- Supported Formats: Plain text files (
.txt, .md)
- File Location: Can be in repository or generated during build process
Example File Paths:
$(releaseNotes.secureFilePath)
$(System.DefaultWorkingDirectory)/release-notes.txt
$(Build.SourcesDirectory)/docs/CHANGELOG.md
Sample File Content:
Build v2.1.0 - $(Build.BuildNumber)
New Features:
• Enhanced security with biometric authentication
• Improved performance with 30% faster loading times
• New dark mode theme option
Bug Fixes:
• Fixed crash when uploading large files
• Resolved sync issues in offline mode
• Fixed UI overlapping on small screens
Build Information:
• Commit: $(Build.SourceVersion)
• Branch: $(Build.SourceBranchName)
• Date: $(Build.QueueTime)
When configured, your task will appear in the pipeline as:
Firebase App Distribution {your-app-id}
Pipeline Integration Example
# Azure DevOps Pipeline Example
steps:
- task: DownloadSecureFile@1
name: privateKey
inputs:
secureFile: 'firebase-private-key.json'
- task: DownloadSecureFile@1
name: releaseNotes
inputs:
secureFile: 'release-notes.txt'
- task: FirebaseAppDistribution@4
displayName: 'Distribute to Firebase'
inputs:
privateKeyPath: '$(privateKey.secureFilePath)'
filePath: '$(System.DefaultWorkingDirectory)/**/*.apk'
appId: '$(FIREBASE_APP_ID)'
testerGroups: 'qa-team, beta-testers'
Notes: 'file'
releaseNotesFilePath: '$(releaseNotes.secureFilePath)'
Prerequisites
Firebase Project Setup
- Firebase project created
- App registered in Firebase Console
- App Distribution enabled
Service Account Configuration
- Service account created with Firebase App Distribution Admin role
- Private key downloaded and stored as secure file in Azure DevOps
Build Artifacts
- App binary built and available in pipeline
- Binary accessible via file path or wildcard pattern
Supported Node.js Versions
- Node 10 ✅
- Node 16 ✅
- Node 20.1 ✅
Best Practices
🔐 Security
- Store private keys as secure files, never in plain text
- Use service accounts with minimal required permissions
- Regularly rotate service account keys
📱 Distribution Strategy
- Start with small tester groups for initial testing
- Use descriptive group names (e.g.,
android-qa, ios-beta)
- Maintain separate groups for different testing phases
📝 Release Notes
- Keep notes concise but informative
- Include build numbers and key changes
- Use consistent formatting for better readability
- Consider using file-based notes for complex release information
🚀 Pipeline Optimization
- Use wildcard patterns for flexible file targeting
- Implement conditional distribution based on branch/environment
- Cache dependencies to improve build performance
This task seamlessly integrates Firebase App Distribution into your Azure DevOps pipeline, enabling efficient and automated app distribution to your testing teams.