tangled
alpha
login
or
join now
aesthetic.computer
/
core
1
fork
atom
Monorepo for Aesthetic.Computer
aesthetic.computer
1
fork
atom
overview
issues
pulls
pipelines
fix(oven): freeze native release metadata
prompt.ac/@jeffrey
2 days ago
eb350770
d627c596
+14
-6
2 changed files
expand all
collapse all
unified
split
fedac
native
scripts
upload-release.sh
oven
native-builder.mjs
+5
-4
fedac/native/scripts/upload-release.sh
reviewed
···
67
67
GIT_CWD="$GIT_ROOT"
68
68
GIT_NATIVE_PATHS=(fedac/native fedac/nixos)
69
69
fi
70
70
-
GIT_HASH=$(git -C "$GIT_CWD" rev-parse --short HEAD 2>/dev/null || echo "unknown")
70
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
90
-
BUILD_TS=$(date -u '+%Y-%m-%dT%H:%M')
90
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
190
-
COMMIT_MSG=$(git -C "$GIT_CWD" log -1 --format="%s" 2>/dev/null || echo "")
190
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
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
222
+
BUILD_NUM_JSON="${BUILD_NUM:-null}"
223
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
reviewed
···
417
417
}
418
418
419
419
const buildName = await runSync("bash", ["scripts/build-name.sh"], NATIVE_DIR) || `oven-${job.ref.slice(0, 7)}`;
420
420
+
const buildGitHash = await runSync("git", ["rev-parse", "--short", "HEAD"], repoDir) || job.ref.slice(0, 9);
421
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
424
+
job.buildGitHash = buildGitHash;
425
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
464
+
AC_GIT_HASH: buildGitHash,
465
465
+
AC_BUILD_TS: buildTs,
466
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
467
-
`CID=$(docker create -e AC_BUILD_NAME=${buildName} -v ac-os-ccache:/ccache ac-os-builder)`,
474
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
518
-
`CID=$(docker create -e AC_BUILD_NAME=${buildName} -e AC_BUILD_VARIANT=cl -e AC_BUILD_LISP=1 ac-os-builder)`,
525
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);