#!/bin/sh set -eu mkdir -p reports artifacts rm -f reports/*.xml artifacts/* scenario=${SCENARIO:-success} version=${RELEASE_VERSION:-1.0.0} target=${TARGET_ENV:-sg} case "$scenario" in success|failure|unstable|aborted) ;; *) exit 2 ;; esac case "$target" in dev|staging|sg) ;; *) exit 2 ;; esac echo "[DEMO] Synthetic CI fixtures; no production deployment is performed." echo "[INFO] job=$JOB_NAME build=$BUILD_NUMBER scenario=$scenario target=$target version=$version" echo "[SCM] $(git log -1 --format='%h %s')" test -s README.md && test -s VERSION && test -s ci/demo-build.sh echo "[STAGE] checkout and configuration checks passed" lines=${LOG_LINES:-80} case "$lines" in ''|*[!0-9]*) exit 2 ;; esac [ "$lines" -le 3000 ] || exit 2 i=1 while [ "$i" -le "$lines" ]; do if [ $((i % 37)) -eq 0 ]; then printf '[WARN] Fixture retry checkpoint %04d: demo dependency responds slowly; retry budget remains.\n' "$i" else printf '[INFO] Checkpoint %04d: validate route, transform fixture, verify checksum and collect diagnostics.\n' "$i" fi i=$((i+1)) done delay=${RUN_SECONDS:-2} case "$delay" in ''|*[!0-9]*) exit 2 ;; esac [ "$delay" -le 45 ] || exit 2 sleep "$delay" failures=0 [ "$scenario" != unstable ] || failures=2 printf '\n' "$failures" > reports/junit.xml i=1 while [ "$i" -le 12 ]; do printf '' "$i" >> reports/junit.xml if [ "$i" -eq 12 ]; then printf '' >> reports/junit.xml elif [ "$failures" -gt 0 ] && [ "$i" -le 2 ]; then printf 'Expected fixture validation success; scenario=unstable' >> reports/junit.xml echo "[TEST-FAIL] case_$i intentional demo assertion mismatch" fi printf '\n' >> reports/junit.xml i=$((i+1)) done printf '\n' >> reports/junit.xml printf 'Demo build\nJob: %s\nBuild: %s\nVersion: %s\nTarget: %s\nScenario: %s\n' "$JOB_NAME" "$BUILD_NUMBER" "$version" "$target" "$scenario" > artifacts/build-summary.txt printf '{"demo":true,"version":"%s","target":"%s","scenario":"%s"}\n' "$version" "$target" "$scenario" > artifacts/release-manifest.json tar -czf artifacts/demo-package.tgz README.md VERSION ci reports echo "[ARTIFACT] build-summary.txt release-manifest.json demo-package.tgz" if [ "$scenario" = failure ]; then echo "[ERROR] Intentional demo packaging/configuration failure: invalid release fixture." exit 1 fi echo "[STAGE] Completed demo build; JUnit failures=$failures"