Docker and CI workflows
Repeatable local builds, artifact checks, dependency caching, and CI gates that keep deployment boring.
Takeaway
CI should prove the same thing a careful local release proves: dependencies install cleanly, checks pass, and the generated artifact matches the intended route surface.
01
Pin the boring pieces
Use the same package manager version, Node version, lockfile policy, and build command locally and in CI. Small mismatches create confusing failures that look like application bugs.
02
Cache dependencies carefully
Dependency caching should speed up repeat builds without hiding lockfile drift. Treat cache misses as normal and keep the frozen install as the source of truth.
03
Inspect the artifact
After build, check route output, metadata routes, and any generated assets. A green compile is not enough if an expected guide page or API endpoint is missing from the final app.