Skip to main content

Github Action

Build and upload both your Android (APK) & iOS (IPA) to notify your testers for testing and feedback using Github Action

Updated over 2 months ago

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.

TestApp.io GitHub Action running

TestApp.io GitHub Action for Linux and macOS

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

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.ioon:
  push:
    branches:
      - mainjobs:
  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.ioon:
  push:
    branches:
      - mainjobs:
  ios:
    runs-on: macos-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4      - name: Build and export iOS
        uses: yukiarrr/[email protected]
        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


Need help? Contact us β€” we're happy to assist!

Did this answer your question?