EAS Workflow with QA agent using agent-device and AI SDK
TypeScript
52
13 commits
updated Jul 20, 2026
This repo is a minimal Expo + CNG example for running AI-assisted Android and iOS QA on EAS Workflows.
fingerprint + get-build + repackbuild when the fingerprint changesToolLoopAgentagent-device to drive the Android app and iOS simulator, take screenshots, and summarize findingsgithub-commentqa-release and qa-ios-simulator are fast review artifacts for PR automation. They are not production shipping artifacts.
android/ or ios/.preview.AI_GATEWAY_API_KEY to that environment.qa-release and qa-ios-simulator profiles as CI review output only. Keep store or production release flows separate.Optional environment variables for the QA job:
AGENT_DEVICE_ANDROID_DEVICE: Android AVD name to boot in CIAGENT_DEVICE_IOS_DEVICE: iOS simulator name to boot in CIQA_MODEL: Override the default model (openai/gpt-5.4-mini)BLOB_READ_WRITE_TOKEN: Upload screenshots to Vercel Blob and include public links in the PR commentnpm install
npx tsc --noEmit
The workflow runner writes section.md, status.txt, and report.json to artifacts/qa/ during execution. Temporary screenshots are written outside the workspace and uploaded to Vercel Blob when configured.
To execute the runner directly with Node 24, provide the same environment variables the workflow sets:
Android:
AI_GATEWAY_API_KEY=... \
QA_PLATFORM=android \
APP_PATH=/absolute/path/to/app.apk \
APPLICATION_ID=dev.expo.easagentdevice \
BUILD_ID=test-build \
PR_JSON='{"number":1,"title":"Test PR","body":"Smoke test"}' \
node ./scripts/agent-qa/index.ts
iOS simulator:
AI_GATEWAY_API_KEY=... \
QA_PLATFORM=ios \
APP_PATH=/absolute/path/to/MyApp.app \
APPLICATION_ID=dev.expo.easagentdevice \
AGENT_DEVICE_IOS_DEVICE="iPhone 17" \
BUILD_ID=test-build \
PR_JSON='{"number":1,"title":"Test PR","body":"Smoke test"}' \
node ./scripts/agent-qa/index.ts
TypeScript
80.0%
JavaScript
10.5%
Shell
9.5%
EAS Workflow with QA agent using agent-device and AI SDK
TypeScript
52
13 commits
updated Jul 20, 2026
This repo is a minimal Expo + CNG example for running AI-assisted Android and iOS QA on EAS Workflows.
fingerprint + get-build + repackbuild when the fingerprint changesToolLoopAgentagent-device to drive the Android app and iOS simulator, take screenshots, and summarize findingsgithub-commentqa-release and qa-ios-simulator are fast review artifacts for PR automation. They are not production shipping artifacts.
android/ or ios/.preview.AI_GATEWAY_API_KEY to that environment.qa-release and qa-ios-simulator profiles as CI review output only. Keep store or production release flows separate.Optional environment variables for the QA job:
AGENT_DEVICE_ANDROID_DEVICE: Android AVD name to boot in CIAGENT_DEVICE_IOS_DEVICE: iOS simulator name to boot in CIQA_MODEL: Override the default model (openai/gpt-5.4-mini)BLOB_READ_WRITE_TOKEN: Upload screenshots to Vercel Blob and include public links in the PR commentnpm install
npx tsc --noEmit
The workflow runner writes section.md, status.txt, and report.json to artifacts/qa/ during execution. Temporary screenshots are written outside the workspace and uploaded to Vercel Blob when configured.
To execute the runner directly with Node 24, provide the same environment variables the workflow sets:
Android:
AI_GATEWAY_API_KEY=... \
QA_PLATFORM=android \
APP_PATH=/absolute/path/to/app.apk \
APPLICATION_ID=dev.expo.easagentdevice \
BUILD_ID=test-build \
PR_JSON='{"number":1,"title":"Test PR","body":"Smoke test"}' \
node ./scripts/agent-qa/index.ts
iOS simulator:
AI_GATEWAY_API_KEY=... \
QA_PLATFORM=ios \
APP_PATH=/absolute/path/to/MyApp.app \
APPLICATION_ID=dev.expo.easagentdevice \
AGENT_DEVICE_IOS_DEVICE="iPhone 17" \
BUILD_ID=test-build \
PR_JSON='{"number":1,"title":"Test PR","body":"Smoke test"}' \
node ./scripts/agent-qa/index.ts
TypeScript
80.0%
JavaScript
10.5%
Shell
9.5%