# Shared Test Environments NomadCode milestones can reference this document when a verification step needs a shared machine or platform SDK that is not expected to exist in every agent workspace. ## Android SDK Remote Runner Use the Toki Labs host for Android SDK dependent checks. ### Access ```bash ssh toki@toki-labs.com ``` After connecting, use the NomadCode checkout prepared on that host. If the checkout is under the same workspace convention as local agent workspaces, start here: ```bash cd /config/workspace/nomadcode ``` If that path is absent, use the active NomadCode checkout on the host and make sure it is on the branch or commit that contains the change being verified. ### Environment Check Run these before Android-specific verification: ```bash flutter doctor -v echo "$ANDROID_HOME" echo "$ANDROID_SDK_ROOT" flutter devices ``` `flutter doctor -v` should show an Android toolchain with an installed SDK. `flutter devices` is allowed to show no physical device when the check only needs a build. A device or emulator is required only for an interactive smoke run. ### Standard Checks For Android SDK dependent client milestones, run from the Flutter host: ```bash cd apps/client flutter pub get flutter build apk --debug ``` `flutter build apk --debug` is the default Android SDK validation for roadmap completion when no device smoke is explicitly required. It verifies Gradle, Android SDK, plugin registration, Firebase Android config wiring, and Dart bootstrap compilation for Android. Generic Dart/widget checks such as `flutter test` and `flutter analyze --no-fatal-infos` may be run locally or on the remote host when the milestone explicitly asks for them. Do not treat the remote host as the source of truth for non-Android SDK checks unless its Flutter SDK version is part of the milestone evidence. ### Optional Device Smoke Run this only when the milestone asks for an Android runtime smoke or notification/device behavior: ```bash cd apps/client flutter devices flutter run -d ``` For Mattermost push work, confirm the app boots, Firebase initialization does not crash, and notification navigation callbacks remain observable. Do not record tokens, credentials, signing keys, or private server values in roadmap or docs. ### Roadmap Evidence When a milestone depends on this environment, leave only a short evidence note in the milestone, for example: ```text Android SDK check: see docs/test-environments.md#android-sdk-remote-runner; flutter build apk --debug passed on toki@toki-labs.com. ``` Keep detailed reusable environment instructions in this document, not in individual milestone files.