grounds push is the command you’ll run dozens of times a day. It’s a thin wrapper over the Gradle plugin: the CLI invokes ./gradlew groundsPush with the right arguments and inherits its stdout.
Synopsis
push
./gradlew groundsPush --target=<t> in the current directory. The Gradle plugin handles:
- Resolving the JAR (auto-detects
shadowJarorjar). - Reading and validating
grounds.yaml. - Uploading JAR + manifest to forge.
- Streaming build + deploy logs back to your terminal.
- Exiting with a non-zero code on any terminal failure.
grounds push uses the release sources declared in
grounds.yaml. Local plugin builds are opt-in through
workspace overrides.
Local plugin overrides
Use--local when one or more entries in grounds.yaml: plugins should come
from your local workspace instead of the release source:
--local accepts both comma-separated IDs and repeated flags. IDs must match
the structured plugin id in grounds.yaml.
Use --with-local when every enabled workspace mapping present in
grounds.yaml should be replaced by its local artifact:
Minestom distribution pushes
Fortype: minestom-server, the CLI uses the Minestom path instead of delegating to the Gradle
groundsPush task. It reads build.task, builds the configured distribution, normalizes
build.artifact, and uploads the tar artifact to Forge.
grounds.yaml
gradlew and grounds.yaml:
flavors, select the Minestom flavor explicitly:
--local and --with-local flags as plugin stacks. When
local mappings apply, the CLI prints the effective source table before running Gradle:
push retry
pending to building. Use it when:
- A build failed because of a transient infra issue (image pull, registry hiccup).
- A deploy failed and you want to try again without rebuilding.
push list
| Flag | Purpose |
|---|---|
--target | Filter by target: dev, staging, production. |
--status | Filter by state: pending, building, build_failed, build_succeeded, deploying, deploy_failed, ready. |
--limit | Max rows to fetch (default 20, server cap 200). |
--output | table (default), json, or yaml. |
Common flags
These are all global flags and apply to every subcommand:| Flag | Env | Purpose |
|---|---|---|
--project <id> | GROUNDS_PROJECT | Pin the project for this call |
--api-url <url> | GROUNDS_API_URL | Override the forge endpoint |
--config <dir> | GROUNDS_CONFIG_DIR | Override config dir |
--output <fmt> | — | table / json / yaml |
--verbose / -v | — | Debug logs to stderr |
--no-color | NO_COLOR=1 | Disable ANSI colors |
Reading the output
A successful push looks like:CrashLoopBackOff, you’ll see deploy logs streamed before the CLI gives up and prints deploy_failed. Tail the live deployment logs separately at any time:
Exit codes
For a practical failure investigation flow, see Debug pushes and deployments.| Code | Meaning |
|---|---|
| 0 | ready reached |
| 1 | Generic failure (validation, network, config) |
| 2 | build_failed |
| 3 | deploy_failed |
| 130 | Cancelled by user (Ctrl-C) |
