|
38 | 38 | - name: Require QA approval label |
39 | 39 | if: >- |
40 | 40 | !contains(github.event.pull_request.labels.*.name, 'qa passed') && |
41 | | - !contains(github.event.pull_request.labels.*.name, 'skip-test') |
| 41 | + !contains(github.event.pull_request.labels.*.name, 'qa not required') |
42 | 42 | run: | |
43 | | - echo "::error::PR requires 'qa passed' or 'skip-test' label to merge." |
| 43 | + echo "::error::PR requires 'qa passed' or 'qa not required' label to merge." |
44 | 44 | exit 1 |
45 | 45 |
|
46 | 46 | # Detect changed file types to gate downstream jobs. |
|
79 | 79 | - 'sidecar/settings-env.sh' |
80 | 80 | - 'sidecar/supervisord.conf' |
81 | 81 | - 'sidecar/healthcheck.sh' |
| 82 | + - 'sidecar/entrypoint.sh' |
| 83 | + - 'sidecar/wait_for_schema.sh' |
| 84 | + - 'sidecar/Containerfile.sidecar' |
82 | 85 | - 'Makefile' |
83 | 86 | - 'frontend/packages/api/specs/**' |
| 87 | + - '.github/labeler.yml' |
| 88 | + - '.github/workflows/ci.yml' |
84 | 89 | precommit: |
85 | 90 | - '.pre-commit-config.yaml' |
86 | 91 | - '.github/workflows/ci.yml' |
@@ -301,6 +306,7 @@ jobs: |
301 | 306 | test -f /home/sep/app/supervisord.conf |
302 | 307 | test -f /home/sep/app/healthcheck.sh |
303 | 308 | test -x /home/sep/app/entrypoint.sh |
| 309 | + test -x /home/sep/app/wait_for_schema.sh |
304 | 310 | test -f /home/sep/app/settings-env.sh |
305 | 311 | test -f /home/sep/app/settings.yaml |
306 | 312 | ' |
@@ -330,6 +336,35 @@ jobs: |
330 | 336 | - name: Smoke test - restricted image ships exactly the activated apps |
331 | 337 | run: sidecar/verify_image_apps.sh "sep:HEAD" restricted |
332 | 338 |
|
| 339 | + - name: Verify the purge layer is the last package-manager operation |
| 340 | + run: python3 scripts/check_sidecar_purge.py --check-ordering |
| 341 | + |
| 342 | + - name: Smoke test - purged packages are absent from the built image |
| 343 | + run: | |
| 344 | + pkgs="$(python3 scripts/check_sidecar_purge.py --print-packages | tr '\n' ' ')" |
| 345 | + if [ -z "$pkgs" ]; then |
| 346 | + echo "::error::the purge checker named no packages, so this check cannot run" |
| 347 | + exit 1 |
| 348 | + fi |
| 349 | + docker run --rm --entrypoint /bin/sh -e PURGED="$pkgs" "sep:HEAD" -c ' |
| 350 | + command -v dpkg-query > /dev/null 2>&1 || { |
| 351 | + echo "::error::dpkg-query is absent, so package presence cannot be established" |
| 352 | + exit 1 |
| 353 | + } |
| 354 | + status=0 |
| 355 | + for p in $PURGED; do |
| 356 | + if dpkg-query -s "$p" 2>/dev/null | grep -q "^Status: install ok installed"; then |
| 357 | + echo "::error::$p is still installed in the built image" |
| 358 | + status=1 |
| 359 | + fi |
| 360 | + done |
| 361 | + if command -v perl > /dev/null 2>&1; then |
| 362 | + echo "::error::a perl binary resolves on PATH" |
| 363 | + status=1 |
| 364 | + fi |
| 365 | + exit $status |
| 366 | + ' |
| 367 | +
|
333 | 368 | pipeline-syntax: |
334 | 369 | if: >- |
335 | 370 | ${{ |
|
0 commit comments