@@ -1025,8 +1025,9 @@ jobs:
10251025 set -euo pipefail
10261026 target="$GITHUB_WORKSPACE/packages/e2e-tests/.cache/rust-e2e-cargo-target"
10271027 mkdir -p "$target/prebuilt"
1028- CARGO_TARGET_DIR="$target" cargo build --release -p mc-module
1028+ CARGO_TARGET_DIR="$target" cargo build --release -p mc-module --bin ck-mc --example transform_replay
10291029 cp "$target/release/ck-mc" "$target/prebuilt/ckdev-mc-e2e"
1030+ cp "$target/release/examples/transform_replay" "$target/prebuilt/rust-raw-replay-probe"
10301031 CARGO_TARGET_DIR="$target" cargo build --release -p mc-module --features drive-fault
10311032 cp "$target/release/ck-mc" "$target/prebuilt/ckdev-mc-e2e-drive-fault"
10321033 (cd "$GITHUB_WORKSPACE/.siblings/subconscious" && CARGO_TARGET_DIR="$target" cargo build --release -p subc-core --bins)
@@ -1098,11 +1099,79 @@ jobs:
10981099 MC_E2E_CK_SUBC_BIN : ${{ github.workspace }}/packages/e2e-tests/.cache/prebuilt/ckdev-subc
10991100 run : scripts/run-rust-hermetic-e2e.sh
11001101
1102+ rust-raw-replay-review :
1103+ name : Rust (raw replay review)
1104+ runs-on : ubuntu-latest
1105+ needs : [e2e-rust-hermetic-build]
1106+ timeout-minutes : 120
1107+ permissions :
1108+ contents : read
1109+ actions : read
1110+ steps :
1111+ - uses : actions/checkout@v5
1112+ - uses : dtolnay/rust-toolchain@stable
1113+ - uses : oven-sh/setup-bun@v2
1114+ with :
1115+ bun-version : latest
1116+ - name : Install workspace dependencies
1117+ run : bun install --frozen-lockfile
1118+ - uses : ./.github/actions/wait-ci-artifact
1119+ id : binaries
1120+ with :
1121+ artifact : rust-hermetic-binaries-${{ github.sha }}
1122+ producer : E2E (Rust hermetic build)
1123+ timeout-minutes : " 120"
1124+ - uses : actions/download-artifact@v4
1125+ with :
1126+ artifact-ids : ${{ steps.binaries.outputs.artifact-id }}
1127+ merge-multiple : true
1128+ path : ${{ runner.temp }}/raw-replay-download
1129+ - name : Restore staged native driver
1130+ shell : bash
1131+ run : |
1132+ set -euo pipefail
1133+ (cd "$RUNNER_TEMP/raw-replay-download" && sha256sum --check rust-hermetic-binaries.sha256)
1134+ mkdir -p "$RUNNER_TEMP/raw-replay-artifact"
1135+ tar -xzf "$RUNNER_TEMP/raw-replay-download/rust-hermetic-binaries.tar.gz" -C "$RUNNER_TEMP/raw-replay-artifact"
1136+ test "$(cat "$RUNNER_TEMP/raw-replay-artifact/commit.txt")" = "$GITHUB_SHA"
1137+ test -x "$RUNNER_TEMP/raw-replay-artifact/rust-raw-replay-probe"
1138+ - name : Fetch pinned master baseline
1139+ shell : bash
1140+ run : |
1141+ set -euo pipefail
1142+ baseline_commit="$(tr -d '\r\n' < scripts/rust-raw-replay-baseline.commit)"
1143+ if [[ ! "$baseline_commit" =~ ^[0-9a-f]{40}$ ]]; then
1144+ echo "Invalid pinned Rust raw replay baseline commit: $baseline_commit" >&2
1145+ exit 1
1146+ fi
1147+ git fetch --no-tags --depth=1 origin "$baseline_commit"
1148+ git cat-file -e "${baseline_commit}^{commit}"
1149+ baseline_archive="$RUNNER_TEMP/rust-raw-replay-baseline.tar"
1150+ git archive --format=tar "$baseline_commit" \
1151+ crates/mc-module/src packages/plugin/src packages/plugin/package.json \
1152+ packages/retina-local-fs/src packages/retina-local-fs/package.json package.json \
1153+ > "$baseline_archive"
1154+ test -s "$baseline_archive"
1155+ echo "Pinned Rust raw replay baseline: $baseline_commit"
1156+ - name : Run staged raw replay witnesses
1157+ env :
1158+ MC_RAW_REPLAY_REQUIRED : " 1"
1159+ MC_RAW_REPLAY_BASELINE_RELEASE : " 1"
1160+ MC_REVIEW_ASSERT_LIVENESS : " 1"
1161+ MC_RAW_REPLAY_PROBE : ${{ runner.temp }}/raw-replay-artifact/rust-raw-replay-probe
1162+ MC_RAW_REPLAY_BASELINE_ARCHIVE : ${{ runner.temp }}/rust-raw-replay-baseline.tar
1163+ run : |
1164+ bash scripts/test-rust-raw-replay.sh \
1165+ packages/plugin/review-tests/rust-cache-review.test.ts \
1166+ packages/plugin/review-tests/rust-cache-r2.test.ts \
1167+ packages/plugin/review-tests/rust-cache-restart.test.ts \
1168+ -t 'round-two|provider-invisible|JSON number|sorted digest|SIGKILL|release recovery census|raw ctx_reduce|durable replay cost|unchanged ID-less native|no-freeze SQL|seed (a19f37|badc0de|c001d00d|92e41b|67d5a3)'
1169+
11011170 ci-summary :
11021171 name : CI (required)
11031172 runs-on : ubuntu-latest
11041173 if : ${{ always() }}
1105- needs : [preflight, check-docs-layout, check-plugin, check-pi-plugin, check-plugin-compat, unit-plugin, unit-pi-plugin, check-dashboard, e2e-opencode, e2e-opencode2, e2e-pi, e2e-omp, e2e-host-opencode, e2e-host-opencode2, e2e-host-pi, e2e-host-omp, rust-clippy, rust-lib-archive, rust-mc-module-lib, rust-mc-module-parity, rust-mc-module-integration, rust-workspace-crates, rust-crates, e2e-rust-hermetic-build, e2e-rust-hermetic]
1174+ needs : [preflight, check-docs-layout, check-plugin, check-pi-plugin, check-plugin-compat, unit-plugin, unit-pi-plugin, check-dashboard, e2e-opencode, e2e-opencode2, e2e-pi, e2e-omp, e2e-host-opencode, e2e-host-opencode2, e2e-host-pi, e2e-host-omp, rust-clippy, rust-lib-archive, rust-mc-module-lib, rust-mc-module-parity, rust-mc-module-integration, rust-workspace-crates, rust-crates, e2e-rust-hermetic-build, e2e-rust-hermetic, rust-raw-replay-review ]
11061175 steps :
11071176 - uses : actions/checkout@v5
11081177 - uses : oven-sh/setup-bun@v2
0 commit comments