Skip to main content

Configuration

The Avocado config defines your project from board support to provisioning, and everything in between.

Precedence of supplied values

The Avocado CLI can be configured three ways, from highest to lowest precedence:

  1. CLI arguments
  2. Environment variables
  3. Configuration files

Configuration files

The Avocado CLI uses a single configuration file to define your project settings, build configurations, dependencies, and provisioning profiles.

By default, the CLI looks for a configuration file named avocado.yaml in the current working directory. This can be configured to use a different file name or location.

For detailed information about all available configuration options, see the config schema.

Environment variables

Environment variables take precedence over configuration file values. When set, they override the corresponding config field.

Environment variableConfig equivalentDescription
AVOCADO_TARGETdefault_targetTarget architecture for builds and deployments.
AVOCADO_REPO_URLdistro.repo.urlPackage repository URL.
AVOCADO_RELEASEVERdistro.repo.releaseverDNF releasever override (e.g., 2024/edge).
AVOCADO_DISTRO_RELEASEdistro.releaseDistribution feed year (e.g., 2024).
AVOCADO_DISTRO_CHANNELdistro.channelDistribution stability channel (e.g., edge, stable).

Legacy environment variables

The following environment variables are deprecated but still supported as fallbacks:

Legacy variableReplacement
AVOCADO_SDK_REPO_URLAVOCADO_REPO_URL
AVOCADO_SDK_REPO_RELEASEAVOCADO_RELEASEVER

Examples

Example configuration files are available in the Avocado OS repository. These examples demonstrate common configuration patterns for different use cases and target platforms.