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. Make code reviews, branch management, and issue triaging work the way you want.

Adding our action to your repo will automatically build and upload the APK for the Android app & the IPA for the iOS app to TestApp.io app distribution and notify all testers to test it and share feedback.

TestApp.io Github Action for Linux and macOS

Workflow to upload apk and ipa to TestApp.io app distribution

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(s) Default
api_token You can get it from https://portal.testapp.io/settings/api-credentials TESTAPPIO_API_TOKEN
app_id You can get it from your app page at https://portal.testapp.io/apps TESTAPPIO_APP_ID
release It can be either both or Android or iOS TESTAPPIO_RELEASE
file Path to the either Android .APK file 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 to be displayed for the testers: true or false TESTAPPIO_GIT_RELEASE_NOTES true
include_git_commit_id Include the last commit ID in the release notes (works with both release notes options): 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: Workflow to upload APK to TestApp.io
on:
  push:
    branches:
      - main

jobs:
  android:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
          
      - name: Build release
        run: ./gradlew assembleDebug
        
      - name: Upload APK 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 debug version, replace the following:

run: ./gradlew assembleDebug

file: app/build/outputs/apk/debug/app-debug.apk


Sample usage for iOS

name: Workflow to upload IPA to TestApp.io

on:
  push:
    branches:
      - main

jobs:
  ios:
    runs-on: macos-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Build and export iOS
        uses: yukiarrr/[email protected]
        with:
          project-path: ios/testappio.xcodeproj
          workspace-path: ios/testappio.xcworkspace
          scheme: testappio
          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 artifact 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 https://github.com/yukiarrr/ios-build-action

Install

- name: TestApp.io App Distribution
  uses: testappio/github-action@v5

Feedback & Support

Developers built TestApp.io to solve the pain of app distribution for mobile app development teams.

Join our community for feedback and support.

Happy releasing 🎉