Builds
With automatic PR previews enabled, Ramus builds supported same-repository pull requests when they open and on every new commit. Fork pull requests are not built. The GitHub comment and the Ramus PR page show build status and link to the preview.
Supported projects
Ramus checks the app directory for these project types, in this order:
| Project | Detection and default build |
|---|---|
| Expo | An Expo dependency and app config, without android/gradlew. Runs Expo prebuild, then a native Android release build. |
| React Native | A React Native dependency and android/gradlew, including prebuilt Expo projects. Builds a release APK with bundled JavaScript for x86_64. |
| Flutter | A Flutter pubspec.yaml and android/ directory. Runs flutter pub get and flutter build apk --release with Ramus's installed Flutter toolchain. |
| Kotlin, Java, or Compose | A Gradle project at the app root. Runs ./gradlew --no-daemon assembleDebug; a Gradle wrapper is required. |
The build must produce an installable APK. Custom signing, private dependencies, product flavors, and specific toolchain requirements may need project changes. A build that succeeds locally can still fail on Ramus.
Configure the app directory
To point Ramus at an app in a monorepo or pick the build shape yourself, add
ramus.toml at the repository root:
app_dir = "apps/mobile"
shape = "flutter"
Both keys are optional. Supported shapes are expo, react-native, flutter,
and gradle. These settings choose the directory and build shape only; you cannot
set custom build commands or pin toolchain versions.
Existing sandlot.toml files still work when there is no ramus.toml. If both
exist, Ramus reads only ramus.toml and does not merge the two.
Read progress and failures
Open a build row on the PR page to see its commit, detected shape, error, and log. The pipeline clones the source, builds the APK in an isolated build guest, and uploads the output. The APK is installed when a preview session starts.
Logs stream while a build runs. Once it finishes, whether it succeeded or failed,
use Download full build log if a stored log is available. If detection fails, check the project layout and
ramus.toml. For compilation or dependency failures, read the log, fix the
project, and push a new commit.
Download and availability
You can download the APK of a ready build from the build panel. Closing or merging a PR cancels unfinished builds, expires ready previews, and ends their sessions. Preview availability and storage retention are separate; see Security for how long files are kept.