Provider‑native output
Author once; ship native configs. CIGen compiles your universal spec into production‑ready CircleCI YAML without leaking abstractions.
Define your pipeline once in a concise, provider‑agnostic format. CIGen validates it with rich error spans and emits provider‑native configuration (CircleCI today; others next).
Provider‑native output
Author once; ship native configs. CIGen compiles your universal spec into production‑ready CircleCI YAML without leaking abstractions.
Strong validation
Schema + data‑level checks with precise error spans. Unknown fields are preserved; invalid states fail fast with actionable messages.
Zero‑boilerplate checkout & cache
Git checkout is optimized (shallow fetch, tag/branch controls, host key scanning). Cache steps are injected automatically when you declare them.
Package install detection
Detects pnpm/yarn/npm/bun, bundler, and pip/pipenv; adds the right install steps with provider‑compatible flags and de‑duplicated execution.
Multi‑arch variants
Generate amd64/arm64 job variants from a single job definition.
Split config at scale
Keep large configs maintainable. Merge files from
.cigen/config/*
automatically and reuse file groups, jobs, and templates. Split your
workflows and jobs into multiple files — CIGen merges them seamlessly.
Define your pipeline structure:
.cigen/├── config.yml # Provider and global config├── config/│ └── source_file_groups.yml # Reusable file patterns├── workflows/│ └── main/│ └── jobs/│ ├── test.yml # Test job definition│ └── build.yml # Build job definitionprovider: circlecisource_file_groups: nodejs: - 'src/**/*.js' - 'package.json' - 'package-lock.json'image: cimg/node:18.0source_files: '@nodejs'packages: nodesteps: - run: npm testimage: cimg/node:18.0architectures: [amd64, arm64]requires: [test]source_files: '@nodejs'packages: nodesteps: - run: npm run buildGenerate CircleCI configuration:
cigen generateResults in a .circleci/config.yml with:
build_amd64, build_arm64).cigen/