Documentation Index
Fetch the complete documentation index at: https://docs.grounds.gg/llms.txt
Use this file to discover all available pages before exploring further.
grounds push invokes under the hood. Run it directly when you don’t have the CLI on your machine, or from CI.
What it does
- Validate — parses
grounds.yaml, checks required fields. - Resolve JAR — uses the
jarFileextension property, or auto-detectedshadowJar/jaroutput. Builds it if needed (this taskdependsOnthe JAR task). - Upload — multipart POST of the JAR + manifest to
<apiUrl>/v1/pushes. Returns a push ID. - Stream — opens an SSE connection to
<apiUrl>/v1/pushes/<id>/logsand tails until terminal status. - Exit — fails the build (non-zero exit) on
build_failedordeploy_failed. Logs the public URL onready.
Flags
| Flag | Purpose |
|---|---|
--target=<dev|staging> | Override the manifest’s target. Highest precedence. |
groundsPush extension or grounds.yaml.
Output
grounds push, the CLI re-rendres these messages with colour and progress indicators. As a raw Gradle task it’s plaintext.
Failure handling
The build fails on:- Manifest parse error (caught locally before upload).
- Upload error (network, 4xx from forge, file not found).
- Terminal
build_failedordeploy_failedfrom the SSE stream. - Connection lost for longer than
timeoutMinutes(default 5). - Whitelist warning when
failOnWhitelistError = true(the default).
GradleException with the diagnostic from forge. For build/deploy failures, the message includes the push ID so you can re-run with groundsPushRetry or fetch logs separately.
Inputs / outputs (Gradle terms)
| Property | Type | Default |
|---|---|---|
manifestFile | RegularFileProperty (input) | <projectDir>/grounds.yaml |
jarFile | RegularFileProperty (input) | auto from shadowJar / jar |
apiUrl | Property<String> (input) | from credentials, else https://platform.grnds.io |
target | Property<String> (input) | dev |
timeoutMinutes | Property<Int> | 5 |
connectTimeoutSeconds | Property<Int> | 20 |
failOnWhitelistError | Property<Boolean> | true |
Calling from CI
.github/workflows/push.yml
GROUNDS_TOKEN should be a service-account token scoped to the project. Don’t use a personal user token — it has too-broad permissions and can’t be rotated independently.