A GitHub Action that triggers your Minitest suite from your CI workflow. It authenticates via GitHub OIDC, uploads your build artifacts, and kicks off test execution — all fire-and-forget. Results are reported back to your PR via GitHub Check Runs.
name: Run Minitest Suite
on:
push:
tags: ['v*']
permissions:
id-token: write # Required for OIDC authentication
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
# Build your app for simulators/emulators (your build steps here)
- uses: minitap-ai/minitest-trigger@v1
with:
app-slug: my-app
ios-build-path: ./build/MyApp.app
android-build-path: ./build/app-debug.apk| Input | Required | Default | Description |
|---|---|---|---|
app-slug |
Yes | — | The Minitest app slug to test |
ios-build-path |
* | — | Path to the iOS simulator build (.app directory or .ipa file) |
android-build-path |
* | — | Path to the Android emulator build (.apk, must target x86-64) |
flow-types |
No | — | Comma-separated flow types to run (e.g., login,checkout) |
tenant-id |
No | — | Tenant ID (required if repo is linked to multiple tenants) |
api-url |
No | https://testing-service.app.minitap.ai |
Override API base URL |
* At least one of
ios-build-pathorandroid-build-pathis required.
| Output | Description |
|---|---|
batch-id |
The ID of the triggered test batch |
status |
Initial status of the triggered batch |
- Validate Builds — Checks that your build artifacts meet the requirements (see below)
- OIDC Authentication — Requests a GitHub OIDC token scoped to the Minitap API. No secrets to manage!
- Upload Builds — Uploads your simulator/emulator builds to Minitap (
.appbundles are automatically packaged into.ipa) - Trigger Run — Calls the Minitap CI API with your configuration
- Fire & Forget — The action exits immediately. Results are reported back via GitHub Check Runs
You must provide at least one build artifact. Minitap runs your app on simulators and emulators, so builds must target those environments.
Provide a simulator .app bundle or a .ipa file.
| Format | Description |
|---|---|
.app |
Simulator bundle directory (automatically packaged into .ipa) |
.ipa |
IPA file (uploaded as-is) |
To build for the iOS Simulator with xcodebuild:
xcodebuild build \
-scheme MyApp \
-sdk iphonesimulator \
-configuration Debug \
-derivedDataPath ./build
# Output: ./build/Build/Products/Debug-iphonesimulator/MyApp.appProvide a .apk file built for x86-64 emulators. The action inspects the APK and verifies it contains native libraries for the x86_64 architecture (lib/x86_64/).
To build an x86-64 debug APK with Gradle, configure your app's build.gradle:
// app/build.gradle
android {
defaultConfig {
ndk { abiFilters 'x86_64' }
}
}Then build:
./gradlew assembleDebug
# Output: app/build/outputs/apk/debug/app-debug.apkNote: If your APK only contains
arm64-v8aorarmeabi-v7alibraries, the action will fail with a clear error telling you which architectures were found.
- uses: minitap-ai/minitest-trigger@v1
with:
app-slug: my-app
ios-build-path: ./build/Build/Products/Debug-iphonesimulator/MyApp.app- uses: minitap-ai/minitest-trigger@v1
with:
app-slug: my-app
android-build-path: ./app/build/outputs/apk/debug/app-debug.apk- uses: minitap-ai/minitest-trigger@v1
with:
app-slug: my-app
ios-build-path: ./build/MyApp.ipa
android-build-path: ./build/app-debug.apk
flow-types: login,checkout,onboarding- uses: minitap-ai/minitest-trigger@v1
with:
app-slug: my-app
android-build-path: ./build/app-debug.apk
tenant-id: tenant_abc123Your workflow must have the id-token: write permission for OIDC authentication to work:
permissions:
id-token: write# Install dependencies
npm install
# Build TypeScript
npm run build
# Lint
npm run lint
# Bundle for distribution (local testing only — CI builds on release)
npm run bundle
# Run all checks
npm run all- Create a GitHub Release with a semver tag (e.g.,
v1.0.0) - The release workflow automatically builds
dist/, commits it, and updates thev1major version tag - Users referencing
@v1get the latest release automatically
MIT