Configuration
OmniPackage reads .omnipackage/config.yml from the project root. This section documents every top-level key.
Top-level keys
| Key | Required | Purpose |
|---|---|---|
version_extractors |
yes | How to determine the package version |
builds |
yes | Per-distro build configuration |
repositories |
no | Where to publish built packages |
image_caches |
no | Cached container images to speed up builds |
secrets |
no | Environment-variable substitution into config.yml |
ignore_source_files |
no | Patterns for files to exclude from the staged source tree |
Environment substitution
Any string in config.yml can reference an environment variable as ${VAR} ($VAR and default values are not recognized). The process environment wins; then .env, read from the current directory (override with --env-file <path>). A variable defined in neither becomes an empty string. Only variables referenced in config.yml are consumed.
A .env file is the recommended default: one place for every value, usable both locally and as a single CI secret. In CI you can also pass values directly through the runner's environment, which makes per-secret rotation easier. The two styles mix freely.
For a minimal complete config, see the c_makefile example.