Continuous integration and continuous deployment

CI (continuous integration) is the practice of having every developer commit automatically trigger a build and a test suite. The point is to catch conflicts and bugs as early as possible, before the branch is merged into the mainline.

CD stands for two different things:
– Continuous delivery — the code has passed CI and is ready to ship; the release itself is manual
– Continuous deployment — the release happens automatically once CI passes

For most e-commerce teams the right shape is automatic deployment to staging plus a manual approval for production.

A typical CI/CD pipeline

Commit → Lint & tests → Build → Deploy to staging → Manual review → Deploy to prod

When a personalization platform is in the picture, three more steps earn their place:

  • Schema validation — check the JSON schema of the events (view, cart, purchase)
  • Smoke test — send a test event into the staging environment
  • Tag verification — confirm the JS snippet loads and initialises

CI/CD and personalization platform integrations

Without CI, a broken event schema surfaces days later — when the personalization platform starts complaining about missing key fields or wrong data types. By then a significant slice of the training data for the algorithms has already been lost.

Important: make event tracking part of the CI suite. A test asserting that “the purchase event contains order_id, revenue and items” takes five minutes to write and saves hours of debugging.

Test What it checks
Schema validation Every event matches the expected schema
Event delivery Events actually reach the platform’s staging environment
Widget load The JS widget initialises with no console errors
A/B split Visitors are allocated to groups correctly

Feature flags alongside CI/CD

A feature flag lets you deploy new functionality to production in the off position and switch it on at the moment you choose, with no further release. In e-commerce that is standard practice for:

  • The gradual rollout of a new recommendation widget
  • Starting an A/B test without a production deploy
  • Turning a broken feature off quickly, without rolling back the whole release