Skip to main content
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

Runs ./gradlew groundsPush --target=<t> in the current directory. The Gradle plugin handles:
  • Resolving the JAR (auto-detects shadowJar or jar).
  • 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.
The CLI exits with the same code Gradle exits with. By default, 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:
Before Gradle runs, the CLI prints the effective source table:
The table is the confirmation step. It shows which plugins use local artifacts and which still use release sources.

push retry

Re-runs the pipeline for a previously failed push. Forge re-uses the server-stored JAR and manifest, so this doesn’t re-upload — it goes straight from 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.
The retry creates a new push row with its own ID; the original is preserved for history.

push list

Common flags

These are all global flags and apply to every subcommand:

Reading the output

A successful push looks like:
If the pod ends up 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.