@@ -165,7 +165,7 @@ The main CI/CD pipeline is split across three workflow files based on trigger co
1651652 . ** build-image** - Builds multi-architecture container images (UBI and Debian-based)
1661663 . ** build-linux** - Builds Linux packages for all release targets
1671674 . ** build-windows** - Builds Windows packages
168- 5 . ** build-macos** - Builds macOS packages (currently disabled with ` if: false ` )
168+ 5 . ** build-macos** - Builds macOS packages
1691696 . ** test-containers** - Runs container tests including BATS and Kubernetes tests
1701707 . ** test-packages** - Tests Linux packages on target distributions
1711718 . ** staging-upload** - Signs packages (via ` sign-packages ` action) and uploads to GCS staging
@@ -187,7 +187,7 @@ The main CI/CD pipeline is split across three workflow files based on trigger co
1871872 . ** build-image** - Builds multi-architecture container images (UBI and Debian-based)
1881883 . ** build-linux** - Builds Linux packages for all release targets
1891894 . ** build-windows** - Builds Windows packages
190- 5 . ** build-macos** - Builds macOS packages (currently disabled with ` if: false ` )
190+ 5 . ** build-macos** - Builds macOS packages
1911916 . ** copy-common-images** - Promotes release images to standard locations
1921927 . ** release** - Creates GitHub release with signed artefacts, SBOMs, and uploads to GCS
1931938 . ** update-docs** - Updates documentation with new version mappings
@@ -333,7 +333,7 @@ The main CI/CD pipeline is split across three workflow files based on trigger co
333333
334334- Automatic tag creation based on schedule
335335- Different versioning for LTS (25.10.x) and mainline (vYY.M.W)
336- - Finds last successful "Build and test " workflow run
336+ - Finds last successful "Branch Build and Test " workflow run
337337- Validates tag doesn't already exist
338338- Uses PAT to trigger downstream workflows
339339- Dry-run support for testing
@@ -416,6 +416,8 @@ The main CI/CD pipeline is split across three workflow files based on trigger co
416416- ` linux-targets ` - JSON array of Linux build targets (full set for PRs, reduced set for staging/releases)
417417- ` version ` - The build version (from Dockerfile or git tag)
418418- ` oss-version ` - The OSS (Fluent Bit) version from source/oss_version.txt
419+ - ` ubi-image-base ` - Canonical UBI image base (` ghcr.io/telemetryforge/agent/ubi ` )
420+ - ` debian-image-base ` - Canonical Debian image base (` ghcr.io/telemetryforge/agent/debian ` )
419421
420422** Usage Examples:**
421423
@@ -471,10 +473,11 @@ get-metadata:
471473
472474**Jobs:**
473475
474- 1. **build-ubi-single-arch-container-images** - Matrix-calls single-arch builds for UBI across selected platforms
475- 2. **build-debian-single-arch-container-images** - Matrix-calls single-arch builds for Debian across selected platforms
476- 3. **build-ubi-container-image-manifest-and-sign** - Invokes reusable manifest+sign workflow for UBI image
477- 4. **build-debian-container-image-manifest-and-sign** - Invokes reusable manifest+sign workflow for Debian image
476+ 1. **resolve-image-bases** - Reuses metadata workflow outputs for canonical UBI and Debian image base names
477+ 2. **build-ubi-single-arch-container-images** - Matrix-calls single-arch builds for UBI across selected platforms
478+ 3. **build-debian-single-arch-container-images** - Matrix-calls single-arch builds for Debian across selected platforms
479+ 4. **build-ubi-container-image-manifest-and-sign** - Invokes reusable manifest+sign workflow for UBI image
480+ 5. **build-debian-container-image-manifest-and-sign** - Invokes reusable manifest+sign workflow for Debian image
478481
479482**Outputs:**
480483
@@ -483,6 +486,7 @@ get-metadata:
483486**Key Features:**
484487
485488- Multi-architecture support (AMD64, ARM64, s390x)
489+ - Canonical image base names sourced from metadata outputs
486490- Separate UBI and Debian build chains so each manifest/sign job depends only on its own image digests
487491- Explicit per-image manifest/sign calls (no matrix in orchestration layer)
488492- Image signing with Cosign (key-based and OIDC)
@@ -858,15 +862,15 @@ sequenceDiagram
858862 BranchBuild->>BranchBuild: get-meta (release linux targets)
859863 BranchBuild->>BranchBuild: build-image (default platforms)
860864 BranchBuild->>Registry: Push signed multi-arch images
861- BranchBuild->>BranchBuild: build-linux + build-windows ( + build-macos if enabled)
865+ BranchBuild->>BranchBuild: build-linux + build-windows + build-macos
862866 BranchBuild->>BranchBuild: test-containers + test-packages
863867 BranchBuild->>BranchBuild: staging-upload (sign packages)
864868 BranchBuild->>GCS: Upload staging artifacts
865869 BranchBuild->>BranchBuild: tests-complete
866870 else Tagged release context
867871 Tag->>RelBuild: Trigger release pipeline
868872 RelBuild->>RelBuild: get-meta (version from tag)
869- RelBuild->>RelBuild: build-image + build-linux + build-windows ( + build-macos if enabled)
873+ RelBuild->>RelBuild: build-image + build-linux + build-windows + build-macos
870874 RelBuild->>Registry: copy-common-images
871875 RelBuild->>RelBuild: release job (SBOM, schema, tarballs, signing)
872876 RelBuild->>GCS: Upload release artifacts
@@ -880,12 +884,14 @@ sequenceDiagram
880884sequenceDiagram
881885 participant Caller as Calling Workflow
882886 participant Multi as call-build-containers
887+ participant Meta as call-get-metadata
883888 participant SingleUBI as call-build-container-single-arch (UBI)
884889 participant SingleDeb as call-build-container-single-arch (Debian)
885890 participant PerImage as call-build-container-manifest-and-sign
886891 participant Registry as GHCR
887892
888893 Caller->>Multi: with version/ref/platforms/nightly-build-info
894+ Multi->>Meta: Resolve canonical image base names
889895
890896 par For each UBI platform
891897 Multi->>SingleUBI: Invoke single-arch reusable workflow
@@ -936,15 +942,15 @@ sequenceDiagram
936942 BuildLinux->>Artifacts: Upload package artifacts
937943 Branch->>TestPkgs: Test release linux target matrix
938944 else Tagged release context
939- Release ->>BuildLinux: Build release linux targets
945+ BranchBuild ->>BranchBuild: build-linux + build-windows + build-macos
940946 BuildLinux->>Artifacts: Upload package artifacts
941947 Note over Release,TestPkgs: release-build.yaml does not run package tests
942948 end
943949` ` `
944950
945951# ## Auto Release Flow
946952
947- ` ` ` mermaid
953+ RelBuild->>RelBuild : build-image + build-linux + build-windows + build-macos
948954sequenceDiagram
949955 participant Cron as Scheduled Trigger
950956 participant Manual as workflow_dispatch
@@ -1126,7 +1132,6 @@ The workflows support different runner types:
11261132- ` namespace-profile-ubuntu-latest ` - Namespace runners (4 vCPU, 8GB RAM)
11271133- ` namespace-profile-ubuntu-latest-4cpu-16gb ` - Larger Namespace runners
11281134- ` namespace-profile-ubuntu-latest-arm ` - ARM64 Namespace runners
1129- - ` self-ubuntu-latest` - Self-hosted runners (when labeled)
11301135- ` macos-15 ` - macOS Apple Silicon
11311136- ` macos-15-intel ` - macOS Intel
11321137- ` windows-2025 ` - Windows Server 2025
@@ -1156,7 +1161,6 @@ Required secrets for workflows:
11561161 - ` build-linux ` - Build Linux packages only
11571162 - ` build-windows ` - Build Windows packages only
11581163 - ` build-macos ` - Build macOS packages only
1159- - ` build-self-hosted` - Use self-hosted runners
11601164
116111652 . ** Testing** - All changes should pass:
11621166 - Unit tests with sanitizers
0 commit comments