1.9 KiB
1.9 KiB
Release Traceability Contract
This repository now treats IMAGE as the single runtime source of truth for
release identity.
Runtime contract
IMAGEmust contain the full release image reference produced by the build job, even when the target host runs the service as a systemd binary instead of a container./api/pingreturnsimage,tag,commit, andversion.tag,commit, andversionare derived fromIMAGE.- If
IMAGEis missing or malformed, the derived fields stay empty instead of being fabricated.
Pipeline contract
- Build must produce
service_image_refonly from the fullGITHUB_SHA. - Build must also produce the linux billing-service binary artifact consumed by deploy.
- Deploy must consume that build artifact directly and must not rebuild on the target host.
- Deploy must pass
service_image_refthrough as the runtime image identity. - Validate must query
billing-serviceon the deployment target athttp://127.0.0.1:8081/api/pingover SSH. - Validate must derive
tagandcommitfromservice_image_refand compare them against/api/ping. - Validate must fail when runtime
image,tag,commit, orversionis empty. - Validate must compare
versionagainst the derived full commit, not a synthetic fallback.
External playbook alignment
The external playbooks/deploy_billing_service.yml playbook should accept
BILLING_SERVICE_BINARY_ARTIFACT and BILLING_SERVICE_IMAGE_REF, deploy the
binary artifact to the target host without rebuilding it there, and inject
IMAGE=<full image ref> into /etc/default/billing-service for the runtime
served through http://127.0.0.1:8081/api/ping.
If billing-service /api/ping keeps returning empty runtime metadata, treat
that as a deployment contract failure: the runtime did not receive the full
IMAGE value and release traceability is broken.