Github Action
GitHub Actions makes it easy to automate all your software workflows with world-class CI/CD. Build, test, and deploy your code right from GitHub.
Adding our GitHub Action to your repo will automatically upload the APK or IPA to TestApp.io and notify your testers.
This action uploads artifacts (.apk or .ipa) to TestApp.io and notifies your team members.
- name: TestApp.io App Distribution
uses: testappio/github-action@v5
Requirements
This action will execute on runners with Ubuntu & macOS operating systems.
Configuration
| Key | Description | Env Var | Default |
|---|---|---|---|
api_token |
You can get it from portal.testapp.io/profile/tokens | TESTAPPIO_API_TOKEN |
|
app_id |
You can get it from your app page at portal.testapp.io/apps → Integrations tab | TESTAPPIO_APP_ID |
|
release |
It can be either both, android, or ios |
TESTAPPIO_RELEASE |
|
file |
Path to the Android .APK or iOS .IPA file | TESTAPPIO_ANDROID_PATH |
|
release_notes |
Manually add the release notes to be displayed for the testers | TESTAPPIO_RELEASE_NOTES |
|
git_release_notes |
Collect release notes from the latest git commit message: true or false |
TESTAPPIO_GIT_RELEASE_NOTES |
true |
include_git_commit_id |
Include the last commit ID in the release notes: true or false |
TESTAPPIO_GIT_COMMIT_ID |
false |
notify |
Send notifications to your team members about this release: true or false |
TESTAPPIO_NOTIFY |
false |
Check ta-cli for more info
Sample Usage for Android
name: Upload APK to TestApp.io
on:
push:
branches:
- main
jobs:
android:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Build debug APK
run: ./gradlew assembleDebug
- name: Upload to TestApp.io
uses: testappio/github-action@v5
with:
api_token: ${{ secrets.TESTAPPIO_API_TOKEN }}
app_id: ${{ secrets.TESTAPPIO_APP_ID }}
file: app/build/outputs/apk/debug/app-debug.apk
release_notes: ""
git_release_notes: true
include_git_commit_id: false
notify: true
If you want a release build instead, replace:
- name: Build release APK
run: ./gradlew assembleRelease
file: app/build/outputs/apk/release/app-release.apk
Sample Usage for iOS
name: Upload IPA to TestApp.io
on:
push:
branches:
- main
jobs:
ios:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build and export iOS
uses: yukiarrr/ios-build-action@v1.12.0
with:
project-path: ios/YourApp.xcodeproj
workspace-path: ios/YourApp.xcworkspace
scheme: YourApp
export-method: ad-hoc
configuration: Release
output-path: artifacts/output.ipa
p12-base64: ${{ secrets.P12_BASE64 }}
certificate-password: ${{ secrets.P12_PASSWORD }}
mobileprovision-base64: ${{ secrets.ADHOC_MOBILEPROVISION_BASE64 }}
code-signing-identity: ${{ secrets.CODE_SIGNING_IDENTITY }}
team-id: ${{ secrets.TEAM_ID }}
- name: Upload to TestApp.io
uses: testappio/github-action@v5
with:
api_token: ${{ secrets.TESTAPPIO_API_TOKEN }}
app_id: ${{ secrets.TESTAPPIO_APP_ID }}
file: artifacts/output.ipa
release_notes: ""
git_release_notes: true
include_git_commit_id: false
notify: true
More info about the iOS build & export action: yukiarrr/ios-build-action
Install
- name: TestApp.io App Distribution
uses: testappio/github-action@v5
Related Articles
- GitHub Actions with Fastlane Plugin
- Setup iOS Project for Fastlane
- ta-cli Documentation
- ta-cli on GitHub
Need help? Contact us — we're happy to assist!