Monorepo for Aesthetic.Computer aesthetic.computer

fix(oven): freeze native release metadata

+14 -6
+5 -4
fedac/native/scripts/upload-release.sh
··· 67 67 GIT_CWD="$GIT_ROOT" 68 68 GIT_NATIVE_PATHS=(fedac/native fedac/nixos) 69 69 fi 70 - GIT_HASH=$(git -C "$GIT_CWD" rev-parse --short HEAD 2>/dev/null || echo "unknown") 70 + GIT_HASH="${AC_GIT_HASH:-$(git -C "$GIT_CWD" rev-parse --short HEAD 2>/dev/null || echo "unknown")}" 71 71 CONFLICT_FILES=$(git -C "$GIT_CWD" diff --name-only --diff-filter=U -- "${GIT_NATIVE_PATHS[@]}" 2>/dev/null || true) 72 72 if [ -n "$CONFLICT_FILES" ]; then 73 73 echo "Error: refusing upload with unresolved merge conflicts:" >&2 ··· 87 87 if [ "$DIRTY_TRACKED" -eq 1 ]; then 88 88 GIT_HASH="${GIT_HASH}-dirty" 89 89 fi 90 - BUILD_TS=$(date -u '+%Y-%m-%dT%H:%M') 90 + BUILD_TS="${AC_BUILD_TS:-$(date -u '+%Y-%m-%dT%H:%M')}" 91 91 # Format must match AC_GIT_HASH "-" AC_BUILD_TS in js-bindings.c / Makefile 92 92 VERSION="${GIT_HASH}-${BUILD_TS}" 93 93 ··· 187 187 || echo '{"releases":[]}' > "$RELEASES_JSON" 188 188 189 189 # Append new entry (keep last 50) 190 - COMMIT_MSG=$(git -C "$GIT_CWD" log -1 --format="%s" 2>/dev/null || echo "") 190 + COMMIT_MSG="${AC_COMMIT_MSG:-$(git -C "$GIT_CWD" log -1 --format="%s" 2>/dev/null || echo "")}" 191 191 BUILD_HANDLE="${AC_HANDLE:-}" 192 192 193 193 python3 - "$RELEASES_JSON" "$FULL_VERSION" "$SHA256" "$SIZE" "$GIT_HASH" "$BUILD_TS" "$BUILD_NAME" "$CHANNEL_PREFIX" "$COMMIT_MSG" "$BUILD_HANDLE" <<'PYEOF' ··· 219 219 220 220 # Record build in MongoDB 221 221 if command -v node &>/dev/null; then 222 - echo "{\"name\":\"$BUILD_NAME\",\"buildNum\":$BUILD_NUM,\"version\":\"$FULL_VERSION\",\"sha256\":\"$SHA256\",\"size\":$SIZE,\"git_hash\":\"$GIT_HASH\",\"build_ts\":\"$BUILD_TS\",\"url\":\"${BASE_URL}/os/native-notepat-latest.vmlinuz\"}" \ 222 + BUILD_NUM_JSON="${BUILD_NUM:-null}" 223 + echo "{\"name\":\"$BUILD_NAME\",\"buildNum\":$BUILD_NUM_JSON,\"version\":\"$FULL_VERSION\",\"sha256\":\"$SHA256\",\"size\":$SIZE,\"git_hash\":\"$GIT_HASH\",\"build_ts\":\"$BUILD_TS\",\"url\":\"${BASE_URL}/os/native-notepat-latest.vmlinuz\"}" \ 223 224 | node "$SCRIPT_DIR/track-build.mjs" record 2>&1 || true 224 225 fi 225 226
+9 -2
oven/native-builder.mjs
··· 417 417 } 418 418 419 419 const buildName = await runSync("bash", ["scripts/build-name.sh"], NATIVE_DIR) || `oven-${job.ref.slice(0, 7)}`; 420 + const buildGitHash = await runSync("git", ["rev-parse", "--short", "HEAD"], repoDir) || job.ref.slice(0, 9); 421 + const buildTs = new Date().toISOString().slice(0, 16); 420 422 const commitMsg = await runSync("git", ["log", "-1", "--format=%s", job.ref], repoDir) || ""; 421 423 job.buildName = buildName; 424 + job.buildGitHash = buildGitHash; 425 + job.buildTs = buildTs; 422 426 job.commitMsg = commitMsg; 423 427 const vmlinuzOut = `/tmp/oven-vmlinuz-${job.id}`; 424 428 ··· 457 461 DO_SPACES_KEY: process.env.DO_SPACES_KEY || process.env.ART_SPACES_KEY || "", 458 462 DO_SPACES_SECRET: process.env.DO_SPACES_SECRET || process.env.ART_SPACES_SECRET || "", 459 463 AC_BUILD_NAME: buildName, 464 + AC_GIT_HASH: buildGitHash, 465 + AC_BUILD_TS: buildTs, 466 + AC_COMMIT_MSG: commitMsg, 460 467 }; 461 468 462 469 // ── C variant ── ··· 464 471 addLogLine(job, "stdout", "Phase 2: Compiling C kernel in Docker..."); 465 472 const cidFile = `/tmp/oven-cid-${job.id}`; 466 473 await runPhase(job, "build", "bash", ["-c", [ 467 - `CID=$(docker create -e AC_BUILD_NAME=${buildName} -v ac-os-ccache:/ccache ac-os-builder)`, 474 + `CID=$(docker create -e AC_BUILD_NAME=${buildName} -e AC_GIT_HASH=${buildGitHash} -e AC_BUILD_TS=${buildTs} -v ac-os-ccache:/ccache ac-os-builder)`, 468 475 `echo $CID > ${cidFile}`, 469 476 `docker start -a $CID`, 470 477 ].join(" && ")], repoDir); ··· 515 522 const clVmlinuzOut = `/tmp/oven-cl-vmlinuz-${job.id}`; 516 523 517 524 await runPhase(job, "cl-build", "bash", ["-c", [ 518 - `CID=$(docker create -e AC_BUILD_NAME=${buildName} -e AC_BUILD_VARIANT=cl -e AC_BUILD_LISP=1 ac-os-builder)`, 525 + `CID=$(docker create -e AC_BUILD_NAME=${buildName} -e AC_GIT_HASH=${buildGitHash} -e AC_BUILD_TS=${buildTs} -e AC_BUILD_VARIANT=cl -e AC_BUILD_LISP=1 ac-os-builder)`, 519 526 `echo $CID > ${clCidFile}`, 520 527 `docker start -a $CID`, 521 528 ].join(" && ")], repoDir);