@@ -107,7 +107,7 @@ jobs:
107107 run : |
108108 set -u +e -o pipefail
109109 cd "$GITHUB_WORKSPACE"
110- docker run --rm \
110+ docker run --rm -i \
111111 -v "$GITHUB_WORKSPACE/matrixone":/go/src/github.com/matrixorigin/matrixone \
112112 -w /go/src/github.com/matrixorigin/matrixone \
113113 -e HOST_UID="$(id -u)" -e HOST_GID="$(id -g)" \
@@ -129,8 +129,15 @@ jobs:
129129 legacy=$(printf "schema=1\nos=%s\narch=%s\nthirdparties_tree=%s" \
130130 "$(uname -s)" "$(uname -m)" "$(git rev-parse HEAD:thirdparties)")
131131 printf '%s\n' "${legacy}" > /tmp/legacy-thirdparties.fingerprint
132- # Accept the old schema during rollout so an existing builder image
133- # remains useful until the first schema-2 image is published.
132+ echo "Computed CI builder fingerprint:"
133+ cat /tmp/expected-thirdparties.fingerprint
134+ if [ -r /mo-prebuilt/thirdparties.fingerprint ]; then
135+ echo "Cached CI builder fingerprint:"
136+ cat /mo-prebuilt/thirdparties.fingerprint
137+ fi
138+ # Accept only the pre-helper schema-1 metadata during rollout. The
139+ # schema-3 contract covers the complete native input tree, so older
140+ # partial fingerprints must rebuild rather than risk stale outputs.
134141 if cmp -s /tmp/expected-thirdparties.fingerprint /mo-prebuilt/thirdparties.fingerprint 2>/dev/null \
135142 || cmp -s /tmp/legacy-thirdparties.fingerprint /mo-prebuilt/thirdparties.fingerprint 2>/dev/null; then
136143 echo "CI builder native fingerprint matched"
@@ -147,6 +154,10 @@ jobs:
147154 if [ "${status}" -ne 0 ]; then
148155 exit "${status}"
149156 fi
157+ # The cached build completed successfully. Fail closed while
158+ # staging its runtime artifacts so a missing library cannot be
159+ # published as a successful image.
160+ set -e
150161
151162 cd "$GITHUB_WORKSPACE/matrixone"
152163 env -u LD_LIBRARY_PATH GOCOVERDIR="$(mktemp -d)" ./mo-service -h >/dev/null
0 commit comments