#!/usr/bin/env bash set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" source_commit="$(git -C "$repo_root" rev-parse HEAD)" export DISASMER_ACCEPTANCE_COMMIT="$source_commit" tmp_dir="$(mktemp -d)" trap 'rm -rf "$tmp_dir"' EXIT tar \ --exclude='./.git' \ --exclude='./target' \ --exclude='./private' \ --exclude='./experiments' \ -C "$repo_root" \ -cf - . | tar -C "$tmp_dir" -xf - if find "$tmp_dir" -path "$tmp_dir/private" -print -quit | grep -q .; then echo "private directory leaked into public split" >&2 exit 1 fi if find "$tmp_dir" -path "$tmp_dir/experiments" -print -quit | grep -q .; then echo "experiments directory leaked into public split" >&2 exit 1 fi cargo test --workspace --manifest-path "$tmp_dir/Cargo.toml" cargo build --workspace --bins --manifest-path "$tmp_dir/Cargo.toml" (cd "$tmp_dir" && node scripts/acceptance-report-smoke.js) (cd "$tmp_dir" && node scripts/acceptance-doc-contract-smoke.js) (cd "$tmp_dir" && node scripts/acceptance-environment-contract-smoke.js) (cd "$tmp_dir" && node scripts/acceptance-evidence-contract-smoke.js) (cd "$tmp_dir" && node scripts/public-private-boundary-smoke.js) (cd "$tmp_dir" && node scripts/release-blocker-smoke.js) (cd "$tmp_dir" && node scripts/resource-metering-contract-smoke.js) (cd "$tmp_dir" && node scripts/hostile-input-contract-smoke.js) (cd "$tmp_dir" && node scripts/tenant-isolation-contract-smoke.js) (cd "$tmp_dir" && node scripts/public-story-contract-smoke.js) (cd "$tmp_dir" && node scripts/public-release-dryrun-contract-smoke.js) (cd "$tmp_dir" && node scripts/self-hosted-coordinator-smoke.js) (cd "$tmp_dir" && node scripts/public-local-demo-matrix-smoke.js) (cd "$tmp_dir" && scripts/release-source-scan.sh) (cd "$tmp_dir" && node scripts/prepare-public-release-dryrun.js) if [[ -n "${DISASMER_FORGEJO_TOKEN:-}" ]]; then (cd "$tmp_dir" && node scripts/publish-public-release-dryrun.js) fi (cd "$tmp_dir" && node scripts/docs-smoke.js) (cd "$tmp_dir" && node scripts/cli-output-mode-smoke.js) (cd "$tmp_dir" && node scripts/cli-login-smoke.js) (cd "$tmp_dir" && node scripts/cli-browser-login-flow-smoke.js) (cd "$tmp_dir" && node scripts/cli-install-smoke.js) (cd "$tmp_dir" && node scripts/user-session-token-boundary-smoke.js) (cd "$tmp_dir" && node scripts/sdk-spawn-runtime-smoke.js) (cd "$tmp_dir" && node scripts/node-lifecycle-contract-smoke.js) (cd "$tmp_dir" && node scripts/vscode-extension-smoke.js) (cd "$tmp_dir" && node scripts/vscode-f5-smoke.js) (cd "$tmp_dir" && node scripts/node-attach-smoke.js) (cd "$tmp_dir" && node scripts/local-services-smoke.js) (cd "$tmp_dir" && node scripts/cancellation-smoke.js) (cd "$tmp_dir" && node scripts/cli-local-run-smoke.js) (cd "$tmp_dir" && node scripts/artifact-download-smoke.js) (cd "$tmp_dir" && node scripts/artifact-export-smoke.js) (cd "$tmp_dir" && node scripts/operator-panel-smoke.js) (cd "$tmp_dir" && node scripts/source-preparation-smoke.js) (cd "$tmp_dir" && node scripts/scheduler-placement-smoke.js) (cd "$tmp_dir" && node scripts/windows-best-effort-smoke.js) (cd "$tmp_dir" && node scripts/windows-validation-contract-smoke.js) (cd "$tmp_dir" && node scripts/quic-smoke.js) (cd "$tmp_dir" && node scripts/dap-smoke.js) (cd "$tmp_dir" && node scripts/flagship-demo-smoke.js)