116 lines
4.5 KiB
YAML
116 lines
4.5 KiB
YAML
# C1 detector gate. The fixture itself is intentionally RED; CI is green only
|
|
# when its exact phase verdicts/reasons match the versioned expected-RED manifest.
|
|
when:
|
|
- event: [pull_request, manual]
|
|
- event: push
|
|
branch: [next, main]
|
|
|
|
steps:
|
|
greenfield-case-denominator-init:
|
|
image: node:22-bookworm-slim
|
|
commands:
|
|
- |
|
|
coverage_run="${CI_PIPELINE_NUMBER}-${CI_WORKFLOW_NUMBER}"
|
|
bash tools/verify-greenfield-case-coverage.sh init \
|
|
tools/fixtures/greenfield-expected-red.tsv .greenfield-case-state \
|
|
"$coverage_run"
|
|
|
|
greenfield-git-present:
|
|
image: node:22-bookworm-slim
|
|
depends_on:
|
|
- greenfield-case-denominator-init
|
|
commands:
|
|
- |
|
|
set +e
|
|
MOSAIC_GREENFIELD_CONTAINER=1 \
|
|
bash tools/e2e-install-test.sh --lane next --source checkout --git present \
|
|
> /tmp/greenfield-git-present.log 2>&1
|
|
fixture_status=$?
|
|
set -e
|
|
cat /tmp/greenfield-git-present.log
|
|
bash tools/verify-greenfield-expected-red.sh \
|
|
next-git-present /tmp/greenfield-git-present.log "$fixture_status"
|
|
coverage_run="${CI_PIPELINE_NUMBER}-${CI_WORKFLOW_NUMBER}"
|
|
bash tools/verify-greenfield-case-coverage.sh mark \
|
|
tools/fixtures/greenfield-expected-red.tsv .greenfield-case-state \
|
|
"$coverage_run" next-git-present
|
|
|
|
greenfield-main-git-present:
|
|
image: node:22-bookworm-slim
|
|
depends_on:
|
|
- greenfield-case-denominator-init
|
|
commands:
|
|
- |
|
|
set +e
|
|
MOSAIC_GREENFIELD_CONTAINER=1 \
|
|
bash tools/e2e-install-test.sh --lane main --source checkout --git present \
|
|
> /tmp/greenfield-main-git-present.log 2>&1
|
|
fixture_status=$?
|
|
set -e
|
|
cat /tmp/greenfield-main-git-present.log
|
|
bash tools/verify-greenfield-expected-red.sh \
|
|
main-git-present /tmp/greenfield-main-git-present.log "$fixture_status"
|
|
coverage_run="${CI_PIPELINE_NUMBER}-${CI_WORKFLOW_NUMBER}"
|
|
bash tools/verify-greenfield-case-coverage.sh mark \
|
|
tools/fixtures/greenfield-expected-red.tsv .greenfield-case-state \
|
|
"$coverage_run" main-git-present
|
|
|
|
greenfield-remote-installer-contract:
|
|
image: node:22-bookworm-slim
|
|
depends_on:
|
|
- greenfield-case-denominator-init
|
|
commands:
|
|
- |
|
|
expected="$(awk 'NF {print $1; exit}' tools/install.sh.sha256)"
|
|
actual="$(sha256sum tools/install.sh | awk '{print $1}')"
|
|
test "$actual" = "$expected"
|
|
set +e
|
|
MOSAIC_GREENFIELD_CONTAINER=1 \
|
|
MOSAIC_FIXTURE_INSTALLER_URL="https://git.mosaicstack.dev/mosaicstack/stack/raw/commit/${CI_COMMIT_SHA}/tools/install.sh" \
|
|
MOSAIC_FIXTURE_INSTALLER_SHA256="$expected" \
|
|
MOSAIC_FIXTURE_SOURCE_COMMIT="${CI_COMMIT_SHA}" \
|
|
bash tools/e2e-install-test.sh --lane next --source remote --git present \
|
|
> /tmp/greenfield-remote.log 2>&1
|
|
fixture_status=$?
|
|
set -e
|
|
cat /tmp/greenfield-remote.log
|
|
bash tools/verify-greenfield-expected-red.sh \
|
|
next-git-present /tmp/greenfield-remote.log "$fixture_status"
|
|
|
|
greenfield-git-absent:
|
|
image: node:22-bookworm-slim
|
|
depends_on:
|
|
- greenfield-case-denominator-init
|
|
commands:
|
|
- |
|
|
set +e
|
|
MOSAIC_GREENFIELD_CONTAINER=1 \
|
|
bash tools/e2e-install-test.sh --lane next --source checkout --git absent \
|
|
> /tmp/greenfield-git-absent.log 2>&1
|
|
fixture_status=$?
|
|
set -e
|
|
cat /tmp/greenfield-git-absent.log
|
|
bash tools/verify-greenfield-expected-red.sh \
|
|
next-git-absent /tmp/greenfield-git-absent.log "$fixture_status"
|
|
coverage_run="${CI_PIPELINE_NUMBER}-${CI_WORKFLOW_NUMBER}"
|
|
bash tools/verify-greenfield-case-coverage.sh mark \
|
|
tools/fixtures/greenfield-expected-red.tsv .greenfield-case-state \
|
|
"$coverage_run" next-git-absent
|
|
|
|
greenfield-case-denominator:
|
|
image: node:22-bookworm-slim
|
|
# Publish exact execution coverage after the full matrix, even if a case failed.
|
|
depends_on:
|
|
- greenfield-git-present
|
|
- greenfield-main-git-present
|
|
- greenfield-remote-installer-contract
|
|
- greenfield-git-absent
|
|
when:
|
|
- status: [success, failure]
|
|
commands:
|
|
- |
|
|
coverage_run="${CI_PIPELINE_NUMBER}-${CI_WORKFLOW_NUMBER}"
|
|
bash tools/verify-greenfield-case-coverage.sh check \
|
|
tools/fixtures/greenfield-expected-red.tsv .greenfield-case-state \
|
|
"$coverage_run"
|