What a real automotive CI pipeline looks like, why the last mile is nothing like web deployment, and how safety, regulation and physical hardware reshape a familiar practice.
Intermediate8 minCI/CD · Testing · Process
Continuous integration in a vehicle programme borrows the vocabulary of web
development and then diverges sharply. The first half of the pipeline is
familiar. The second half is not, and the differences are the interesting part.
Confidence increasing, execution frequency decreasing — Every stage is slower and scarcer than the one before it. The pipeline's job is to fail as early and as cheaply as possible.
Stage 1 — Commit (seconds to minutes, every commit)#
Static analysis, unit tests, licence and checks, secret scanning.
On safety-relevant C, compliance is checked here.
Build for every target variant. This is where automotive gets expensive quickly:
a matrix of SoC variants, market configurations, and model years, each producing
its own artefact.
yaml
# The variant matrix is the thing that grows without anyone deciding to grow itmatrix: soc: [gen3, gen4] market: [eu, us, cn] cluster: [standard, hud]# 2 × 3 × 2 = 12 images, every time
Gotcha
Variant explosion is the most common reason automotive CI becomes unusably slow.
The fix is not more build machines — it is questioning whether each dimension
must be a separate image, or could be runtime configuration or an
instead.
An overlay you can flip at runtime costs one build. A build flag costs a full
matrix row forever.
Stage 3 — SIL / virtual ECU (minutes, every merge)#
The stage from the previous topic. Scenario tests against a
data broker, replayed real traces, fault injection, API contract checks.
Real ECUs on a bench, driven by a real-time vehicle simulation. Catches timing,
bus behaviour under load, boot sequencing, power transitions.
rigs are expensive and few. Treat rig time as the scarce resource it
is: run the tests that genuinely need hardware, and be ruthless about moving
everything else down to SIL.
Stage 5 — Vehicle fleet (days, per release candidate)#
A test fleet running the candidate in real conditions. Finds thermal problems,
real network behaviour, GNSS in tunnels and multipath, and the long tail of
things nobody modelled.
Beware the "we deploy to cars like we deploy to servers" claim. Ask three
questions: what is the rollback path, what is the staged rollout policy, and what
happens to a vehicle that is offline for two months.
Programmes with good answers exist. Programmes that have not thought about the
third question are the ones that end up with a fragmented fleet nobody can
reason about.