Driver build and release component interactions

flowchart LR
  Matrix[customers.json] --> Fanout[release-all-customers]
  Manual[Manual dispatch] --> Release[release-driver]
  Fanout --> Release
  Release --> Resolve[Resolve niseCore / WBF / include SHAs]
  Resolve --> Change{Relevant SHA changed?}
  Change -->|yes| Build[build-driver reusable workflow]
  Build --> Action[Build action at pinned automation ref]
  Action --> Source[Checkout selected source refs]
  Source --> Compile[EWDK compile + package]
  Compile --> Validate[Tests / package validation]
  Validate --> Sign[Signing service]
  Sign --> Artifact[Build artifact]
  Artifact --> GHRelease[GitHub release]
  GHRelease --> History[Release-history record]
  Fanout --> Reconcile[Reconcile missing history rows]
  Reconcile --> History

The arrows show dependency or runtime/control flow supported by the source structure and entrypoints at 5710513f9834. Dotted arrows mean configuration or validation rather than a runtime call.

Interaction contracts

From/toContract
Customer matrixSelects customer project, niseCore/WBF/include refs, EWDK, method and target.
Build workflowDispatches the reusable build action with explicit inputs and protected secrets.
Release workflowResolves exact SHAs, detects changes, builds, caches, packages, releases and records evidence.
All-customer orchestratorFans out one release per matrix row and reconciles missing release-history updates.
Signing/publishingSupports package signing and publication paths; secret material must remain external.
ValidationProvides accuracy, HLK and security/compliance pipeline assets.
Legacy/Jenkins pipelinesRetains legacy build/deploy flows alongside GitHub Actions.
Tuning/toolsProvides tuning, scoring, collection and analysis tooling outside the core driver build.

Evidence