Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/starriver/gobbo
Godot 4.x CLI toolchain
https://github.com/starriver/gobbo
build-tool cli godot golang package-manager toolchain
Last synced: about 1 month ago
JSON representation
Godot 4.x CLI toolchain
- Host: GitHub
- URL: https://github.com/starriver/gobbo
- Owner: starriver
- License: isc
- Created: 2024-08-14T13:59:28.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-12-16T21:01:13.000Z (about 1 month ago)
- Last Synced: 2024-12-16T22:19:19.484Z (about 1 month ago)
- Topics: build-tool, cli, godot, golang, package-manager, toolchain
- Language: Go
- Homepage:
- Size: 120 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Gobbo](./.logo.svg)
**Gobbo** is a CLI toolchain for Godot 4.x.
This is heavily WIP.
## Current `gobbo.toml` schema
`godot` is the only required key. Defaults are listed here.
```toml
godot = "4.3"
src = "src"[export]
only = []
dist = "dist"
zip = false
volumes = []
mount_secrets = false
scripts.pre = ""
scripts.post = ""[export.variant]
only = []
volumes = []
scripts.pre = ""
scripts.post = ""
elective = false
```- `godot` is the Godot version to use. Pre-release versions can be accessed with a suffix, eg. `-beta1`. Currently only official builds are supported, build-from-source is planned.
- `src` is the path of the Godot project root (ie. containing `project.godot`).### Export table
This configures the Gobbo exporter. You should still set up your export presets (in `src/export_presets.cfg`) as normal.
- `only` filters the presets to export.
- `dist` is the path of the finished exports. When exporting, it will be created if it doesn't exist.
- `zip` automatically zips all exports if true. Otherwise, exports will be in `dist` subdirectories.
- `volumes` allows for [short-form Docker volumes](https://docs.docker.com/reference/cli/docker/container/run/#volume) to be mounted for all build containers. Currently, only the `z`, `Z` and `ro` flags are supported.
- `mount_secrets` will mount configured secrets (from your editor & export configs) into the build containers. This is necessary for Android exports to work: your keystores will be mounted, and their usernames & passwords will be configured. Currently, this doesn't affect any other platform.
- `scripts.*` specifies Bash script hooks to be executed before (`pre`) and after (`post`) the Godot export has executed.#### Variants
Export **variants** can be specified, which will enable a two-dimensional build matrix (presets vs. variants). Variants are named after their tables.
For each variant's table:
- `only` and `volumes` are merged with their respective values in `[export]`.
- `scripts.*` will **override** their respective values in `[export]`.
- `elective`, if true, disables the variant unless it's explicitly specified in the `gobbo export` command.For example, to produce a matrix of builds for Itch and Steam:
```toml
[export.itch]
# Simply having this table here is enough to add a row to the matrix for Itch
# builds. In this example, they're simply the unaltered Godot exports.[export.steam]
only = ["windows", "macos", "linux"]
volumes = ["./steam:/opt/steam:ro"]
scripts = {
pre = "/opt/steam/prepare.sh"
post = "/opt/steam/finalise.sh"
}
elective = true
```---
## License
[ISC](./LICENSE)