Skip to content

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:

ProjectDetection and default build
ExpoAn Expo dependency and app config, without android/gradlew. Runs Expo prebuild, then a native Android release build.
React NativeA React Native dependency and android/gradlew, including prebuilt Expo projects. Builds a release APK with bundled JavaScript for x86_64.
FlutterA Flutter pubspec.yaml and android/ directory. Runs flutter pub get and flutter build apk --release with Ramus's installed Flutter toolchain.
Kotlin, Java, or ComposeA 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.