|
1 | 1 | name: Container builds |
2 | 2 |
|
3 | | -# Full `podman build` of every example image. This is the heavy pass the |
4 | | -# fast push CI (ci.yml) deliberately skips — several images build gRPC, |
5 | | -# OpenTelemetry-cpp, or libabigail from source (tens of minutes each), so it |
6 | | -# runs on demand rather than on every push. |
| 3 | +# Full `podman build` of every standalone example image. This is the heavy |
| 4 | +# pass the fast push CI (ci.yml) deliberately skips — several images build |
| 5 | +# gRPC, OpenTelemetry-cpp, or libabigail from source (tens of minutes each), |
| 6 | +# so it runs on demand rather than on every push. |
| 7 | +# |
| 8 | +# Two Containerfiles are excluded (see the discover job): demo-01's PGO build |
| 9 | +# and 11-build-tooling both need their demo.sh to generate a build input |
| 10 | +# (PGO profiles / vendored deps) first, so they are not standalone-buildable. |
7 | 11 | # |
8 | 12 | # Trigger manually from the Actions tab (or `gh workflow run "Container builds"`). |
9 | 13 | # To also run it weekly, uncomment the schedule block below (note: ~22 heavy |
@@ -32,10 +36,21 @@ jobs: |
32 | 36 | - id: set |
33 | 37 | name: Build matrix from examples/**/Containerfile* |
34 | 38 | run: | |
35 | | - files=$(find examples -name 'Containerfile*' -type f | sort \ |
| 39 | + # Excluded — NOT standalone `podman build` targets. Each needs its |
| 40 | + # demo.sh to generate a build input first, so a bare build from a |
| 41 | + # clean checkout fails on a missing COPY source: |
| 42 | + # * demo-01 Containerfile.pgo — two-pass PGO; the optimized stage |
| 43 | + # COPYs pgo-profiles/ (.gcda files captured by demo.sh's training |
| 44 | + # run). Build it via `demo.sh` / the --target flow, not here. |
| 45 | + # * 11-build-tooling — COPYs vendor/, which is gitignored and |
| 46 | + # populated by the demo. Covered by its demo.sh instead. |
| 47 | + exclude='examples/demo-01-image-strategy/Containerfile.pgo|examples/statelessness/11-build-tooling/Containerfile$' |
| 48 | + echo "Excluded (demo.sh-driven, not standalone-buildable):" |
| 49 | + find examples -name 'Containerfile*' -type f | sort | grep -E "$exclude" | sed 's/^/ - /' || true |
| 50 | + files=$(find examples -name 'Containerfile*' -type f | sort | grep -vE "$exclude" \ |
36 | 51 | | jq -R -s -c 'split("\n") | map(select(length > 0))') |
37 | 52 | echo "matrix={\"containerfile\":$files}" >> "$GITHUB_OUTPUT" |
38 | | - echo "Discovered:"; echo "$files" | jq -r '.[]' |
| 53 | + echo "Building:"; echo "$files" | jq -r '.[]' | sed 's/^/ - /' |
39 | 54 |
|
40 | 55 | build: |
41 | 56 | name: ${{ matrix.containerfile }} |
|
0 commit comments