Skip to content

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 with ${VAR}. Values resolve from a .env file (project root by default, override with --env-file <path>) or from the process environment. Only variables actually referenced in config.yml are consumed.

A .env file is the recommended default: every value lives in one place, the same file works for local runs, and it copy-pastes cleanly into a single CI secret. In CI, passing values directly through the runner's environment (per-secret env vars on the step) can be cleaner if you want per-secret rotation. Both styles work and can be mixed.