zCICD
zCICD is Zebroo's continuous integration and deployment application for Odoo projects. It runs as an Odoo app itself, and its job is to turn every branch in your Git repository into a running, testable Odoo instance — automatically, with no manual server work.
If you have never used it before, start with Core Concepts.
What it does
You connect zCICD to a Git repository once. From then on:
- every new branch that appears in the repository gets its own Odoo instance, built and started automatically
- each instance has its own database, which can be seeded from a dump or created fresh with demo data
- you can open any branch's instance in the browser and log in with one click, without knowing the password
- tests run automatically when new commits arrive, and only the tests that the change can actually affect are executed
- finished branches move through a review and approval flow into a release
Why a dedicated application
Odoo projects have some awkward properties that generic CI tools (GitHub Actions, GitLab CI, Jenkins, Bamboo) handle poorly:
Reusable structure. Setting up a pipeline per project works fine if you run one project. Across many projects, hand-built pipelines drift apart until no two look alike. zCICD gives every Odoo project the same shape from day one.
Intelligent test selection. A one-character change can break the whole system — but usually it does not. zCICD hashes each module together with its dependencies and skips any module already proven green at that exact hash, tag set and Python version — even if it was proven on a different branch. In practice this cuts up to 95% of the time off a test run. A hand-built Jenkins or GitHub pipeline almost always re-tests everything, every time. See Test Runs.
Browsable branches without DNS work. Odoo cannot run behind a path rewrite,
so the usual trick of serving /branch-name/ does not work. zCICD uses a cookie
to route your browser to the instance you selected, which means you never have
to touch a DNS server or provision hostnames per branch.
Useful tooling included. An anonymised copy of the production database is one click away, as are a shell, a web-based editor, and live container logs.
Where to go next
| If you want to… | Read |
|---|---|
| Understand the vocabulary | Core Concepts |
| Find your way around the UI | Navigating the App |
| Work on a feature branch | Your First Branch |
| Know what you are allowed to do | User Roles |
| Connect a Git repository | Repositories |
| Look up a button | Branch Actions |
| Back up or restore a database | Database Backup and Restore |
| Understand why tests were skipped | Test Runs |
| Get an approval unblocked | Approval and Code Review |
| Ship a change to production | Releases |
| Find out why an instance stopped | Instance Lifecycle |
| Give developers a safe copy of production data | Compressors |
| Add a server, volume or registry | Machines, Volumes and Registries |
| Work out why something didn't happen | Troubleshooting and Logging |
| Stand up zCICD itself | Installing zCICD |