feat(installer): add transactional P0-P9 state machine
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# C1 expected-RED gate. The fixture must execute from zero and discriminate the
|
||||
# known failed postconditions; this step is green only when the fixture itself
|
||||
# returns the expected non-zero and the named evidence rows are present.
|
||||
when:
|
||||
- event: [pull_request, manual]
|
||||
- event: push
|
||||
branch: [next, main]
|
||||
|
||||
steps:
|
||||
greenfield-git-present:
|
||||
image: node:22-bookworm-slim
|
||||
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
|
||||
test "$fixture_status" -eq 1
|
||||
grep -Eq '^\[fixture\] resolved lane=next .*version=[0-9]+\.[0-9]+\.[0-9]+-next\.' /tmp/greenfield-git-present.log
|
||||
grep -q '^\[P1\] PASS: required tools present (including downstream git)' /tmp/greenfield-git-present.log
|
||||
grep -q '^\[P3\] PASS: absolute_path=.* version=.* equals resolved lane version' /tmp/greenfield-git-present.log
|
||||
grep -q '^\[P4\] FAIL: NOT-MEASURED / UNDECLARED:' /tmp/greenfield-git-present.log
|
||||
grep -q '^\[P5\] FAIL:' /tmp/greenfield-git-present.log
|
||||
grep -q '^\[P6\] FAIL:' /tmp/greenfield-git-present.log
|
||||
grep -q '^\[P8\] FAIL:' /tmp/greenfield-git-present.log
|
||||
grep -q '^\[P9\] FAIL:' /tmp/greenfield-git-present.log
|
||||
|
||||
greenfield-main-git-present:
|
||||
image: node:22-bookworm-slim
|
||||
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
|
||||
test "$fixture_status" -eq 1
|
||||
grep -Eq '^\[fixture\] resolved lane=main .*version=[0-9]+\.[0-9]+\.[0-9]+' /tmp/greenfield-main-git-present.log
|
||||
grep -q '^\[P1\] PASS: required tools present (including downstream git)' /tmp/greenfield-main-git-present.log
|
||||
grep -q '^\[P3\] PASS: absolute_path=.* version=.* equals resolved lane version' /tmp/greenfield-main-git-present.log
|
||||
grep -q '^\[P4\] FAIL: NOT-MEASURED / UNDECLARED:' /tmp/greenfield-main-git-present.log
|
||||
grep -q '^\[P5\] FAIL:' /tmp/greenfield-main-git-present.log
|
||||
grep -q '^\[P6\] FAIL:' /tmp/greenfield-main-git-present.log
|
||||
grep -q '^\[P8\] FAIL:' /tmp/greenfield-main-git-present.log
|
||||
grep -q '^\[P9\] FAIL:' /tmp/greenfield-main-git-present.log
|
||||
|
||||
greenfield-git-absent:
|
||||
image: node:22-bookworm-slim
|
||||
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
|
||||
test "$fixture_status" -eq 1
|
||||
grep -q '^\[fixture\] installer_exit=1 done_claims=0' /tmp/greenfield-git-absent.log
|
||||
grep -q '^\[P1\] FAIL: undeclared/missing prerequisite(s)=git;' /tmp/greenfield-git-absent.log
|
||||
grep -q '^\[P3\] FAIL: .*executable=no' /tmp/greenfield-git-absent.log
|
||||
if grep -q 'Done\.' /tmp/greenfield-git-absent.log; then
|
||||
echo 'git-absent state-machine run falsely certified Done' >&2
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user