circleci config process: Expand CircleCI Config
circleci config process resolves orbs, executors, parameters, and pipeline values and prints the fully expanded config that CircleCI actually runs.
When a job does not behave as written, the cause is often orb or parameter expansion. process shows the final config after all substitutions, which is invaluable for debugging and for dynamic (setup) pipelines.
What it does
circleci config process takes a source config, fetches orbs, applies parameter defaults and pipeline values, and writes the resolved config to stdout. Dynamic-config setup workflows commonly process a child config and hand it to the continuation.
Common usage
circleci config process .circleci/config.yml
circleci config process .circleci/config.yml > processed.yml
circleci config process --pipeline-parameters '{"deploy": true}' \
.circleci/config.ymlOptions
| Flag | What it does |
|---|---|
| [path] | Config file to process (defaults to .circleci/config.yml) |
| --pipeline-parameters <json|@file> | Values for declared pipeline parameters |
| --org-id <id> | Organization id for resolving orbs |
| --verbose | Print extra resolution detail |
In CI
In a dynamic-config setup workflow, process the child config, then feed it to the continuation orb. In a lint job, diff the processed output to confirm orb upgrades did not change behavior unexpectedly.
Common errors in CI
Expansion problems print Error: config compilation contains errors: parameter ... is not defined or variable expansion: ... not found. Passing bad JSON to --pipeline-parameters yields invalid character ... in .... If an orb cannot be resolved you get Orb ... not found; supply --org-id and ensure the runner has network and auth.