Skip to main content

Deploy

Run it in the root of your Gradle build:
Or pass the path:
What happens:
  1. The CLI packages the source. Inside a git repository it takes the files git knows about; see What gets uploaded.
  2. It uploads the archive to the project. If the project does not exist yet, the platform creates it: in the org you pass with --org, else in your default org (atoll orgs switch), else in your personal org.
  3. It prints the build and deploy log as it runs.
  4. When the deployment finishes, it prints a summary and exits with a code that matches the result.
CLI deploys always go to production. Pull requests from a linked repository get previews.

The project name

The project is named after the directory, lowercased, with other characters turned into -. Pass --name to choose it yourself:
See Project names for the rules.

The summary

Each line shows the target kind, the Gradle module, its status, whether it is the primary one, and its URL once it is live. Under it come notes, the reason a target was skipped, the error of a failed one, and the files of Android and desktop targets.

Exit codes

Use them to gate a CI job: PARTIAL means something is live but not everything.

Don’t wait

--no-wait returns as soon as the upload is accepted, with exit code 0. Follow the deployment later:

Deploying from CI

In CI, use a personal access token instead of atoll login:
  1. In the panel, open Account and create a token. Copy the secret; it is shown once.
  2. Store it as a secret in your CI system.
  3. Pass it to the CLI as ATOLL_TOKEN, with the server in ATOLL_SERVER:
The token acts as you, with your roles. A token never uses the default org saved by atoll orgs switch, so pass --org if the first deploy must create the project in a team’s org. The GitHub Actions guide has a full workflow.

Server and token options

Every command that talks to the server takes:

Limits

  • The upload can be at most 500 MB. Keep build outputs and large binary files out of the source, or add them to .gitignore.
  • When every build slot of the server is busy, a deployment waits in QUEUED until one is free.
  • If your org has used up a free amount or reached its spend limit, the upload is refused with a message that says why and links to the org’s Billing tab. See Billing.