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:
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
Common flags
These are all global flags and apply to every subcommand: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.
Anything non-zero is safe to fail a CI step on.
