.revyl/config.yaml is the configuration file for local and remote builds. It
is generated when revyl init runs for the first time in your project.
Optional overrides can also be passed into revyl build.
A complete example
- Expo
- React Native
- iOS
- Android
PR review build fields
GitHub PR-review builds use the same environment, secret, and cache field shapes as direct remote builds:env contains non-secret values, while secrets contains names previously
stored with revyl build secret set. A name cannot appear in both. PR-review
caches are independently declared: omitting pr_review.builds.*.caches or
setting it to [] disables caching for that PR-review build, regardless of the
matching build.platforms.* cache configuration.
The legacy PR-review form env: [SECRET_NAME] is accepted and interpreted as
secrets: [SECRET_NAME], but is deprecated.
Platform entries
Each key underbuild.platforms is a named build stream. The key must be, or
contain, ios or android. ios, android, ios-dev, and android-release
all work. Pass the key to --platform; passing just ios or android picks
the best-matching stream.
Steps run in the project root. Each
commands entry is a shell command, so
cd android && ./gradlew … and A=B tool … both work.
Artifact resolution
After the last command exits 0, Revyl resolves the artifact:- iOS:
outputpath or glob pointing at a simulator.appbundle. If unset, Revyl searchesbuild/**/*.app. The bundle must be a simulator build (-sdk iphonesimulator). - Android:
outputpath or glob pointing at an.apk. If unset, Revyl searches**/build/outputs/apk/**/*.apk..aabartifacts are rejected.
output explicitly whenever more than one artifact could match, like a flavor
matrix producing several APKs, or a cached DerivedData directory holding stale
products.
Environment variables
Non-secret variables are exported into the shell for every remote build command. Use this for public build configuration such asEXPO_PUBLIC_*
variables that Expo inlines into the bundle or ENVFILE for
react-native-config:
--env values take precedence over the config file’s env map.
Do not put credentials or tokens in env or --env; those values are part of
the remote build request. Use encrypted build secrets instead.
Build secrets
Create or update an encrypted organization secret through the masked prompt:--secret NAME to add a reference for one invocation. Repeated names are
de-duplicated:
env and secrets.
True remote secrets are not downloaded for local builds. A local build uses the
same names from its process environment:
.env.local automatically. Keep it out of version control;
the CLI fails before running the build if a referenced local value is missing.
List or delete stored names without revealing values:
Repo-backed builds
For repositories too large to upload per build, configure a Git source so the runner fetches code directly:CLI reference
Managing running builds:
Timeout
Remote builds are stopped by the server when they exceed their timeout — 60 minutes by default, up to a maximum of 4 hours. Optionally set it per platform with thetimeout key, in seconds:
revyl build --remote --timeout 3600.
Ctrl-C stops following the build; the build keeps running in the cloud. Cancel
it with revyl build cancel <build-job-id>.
Related
- Caching: cache disk configuration and semantics
- Toolchain Images: available images and installed tools
- Artifact Requirements: what the
.app/.apkmust look like