AI test workflows (.mobflow)
mobai-ci test now runs .mobflow workflows next to .mob scripts. A workflow
is a list of plain-language steps, like "tap Continue" or "the sign-in screen is
shown". Each step is performed on the device by the jev agent, one step at a time.
actsteps drive the app.assertsteps are judged from the screen and never take an action.loginsteps type a stored credential that the step text never contains.- Nothing is compiled or cached. Every run performs the workflow, so a cold checkout behaves the same as a warm one.
- A failed step leaves a screenshot and UI tree, the same as a failed script step.
- Credentials come from
MOBAI_SECRET_<ID>environment variables and are scrubbed from logs and reports. A failure screenshot can still show a typed value.
Workflows need a TypeSafe API key. Set MOBAI_TYPESAFE_KEY (or pass --jev-key).
New flags: --jev-key, --jev-model, --jev-step-budget (default 8 moves per
step). Workflows are free in CI.
- name: Run workflows
env:
MOBAI_TYPESAFE_KEY: ${{ secrets.MOBAI_TYPESAFE_KEY }}
run: mobai-ci test ./workflows --app MyApp.app --device "$MOBAI_SIM_UDID"Faster, steadier simulator starts on hosted runners
- The on-device runner no longer gets compiled on the CI machine before the first start. On GitHub's macOS images that used to cost 35 to 100 seconds per job. It is now ready in well under a second.
- The runner registers itself with the simulator's system services right at launch instead of on its first request, so it no longer waits behind the services a freshly booted simulator is still launching.
- The start budget (
--startup-timeout) defaults to 8 minutes, and running out of it on a simulator now says why it usually happens and what to do: give it more time, or turn those services off with a slim profile.
iOS bridge 14
The iOS bridge is rebuilt with these changes. It installs on the next start.