Schema reconciliation + index hygiene, and the weekly base-image refresh #243
@@ -131,13 +131,32 @@ jobs:
|
|||||||
mkdir -p /tmp/versions_held
|
mkdir -p /tmp/versions_held
|
||||||
mv alembic/versions/*.py /tmp/versions_held/ 2>/dev/null || true
|
mv alembic/versions/*.py /tmp/versions_held/ 2>/dev/null || true
|
||||||
DB_NAME=fc_gen alembic revision --autogenerate -m "baseline" || true
|
DB_NAME=fc_gen alembic revision --autogenerate -m "baseline" || true
|
||||||
# Printed in full rather than uploaded. ci-requirements.md records
|
# Printed rather than uploaded: ci-requirements.md records that this
|
||||||
# that this runner cannot do actions/upload-artifact@v4+, and the
|
# runner cannot do actions/upload-artifact@v4+, and the repo dropped
|
||||||
# repo dropped the action entirely in 2026-05; the job log is the
|
# the action entirely in 2026-05, so the job log is the retrieval
|
||||||
# retrieval channel that is actually proven here.
|
# channel actually proven here.
|
||||||
echo "===== BEGIN CANDIDATE BASELINE ====="
|
#
|
||||||
cat alembic/versions/*.py
|
# base64, not the raw file. A plain `cat` of the ~33KB candidate was
|
||||||
|
# TRUNCATED MID-LINE by the runner on run 4964 — it stopped inside
|
||||||
|
# `sa.Column('mime', sa.String(length=128)` and carried straight on
|
||||||
|
# to the next traced command, with the step still green. A silent
|
||||||
|
# cut in the middle of a schema definition is the worst possible
|
||||||
|
# failure here, because the truncated text still looks like a
|
||||||
|
# plausible file.
|
||||||
|
#
|
||||||
|
# base64 at a fixed narrow width gives many short lines instead of
|
||||||
|
# few long ones, and — the actual point — a checksum and a line
|
||||||
|
# count that make truncation DETECTABLE rather than invisible.
|
||||||
|
set +x
|
||||||
|
F=$(ls alembic/versions/*.py | head -1)
|
||||||
|
B64=$(base64 -w 120 "$F")
|
||||||
|
echo "===== BEGIN CANDIDATE BASELINE (base64) ====="
|
||||||
|
echo "$B64"
|
||||||
echo "===== END CANDIDATE BASELINE ====="
|
echo "===== END CANDIDATE BASELINE ====="
|
||||||
|
echo "candidate-sha256: $(sha256sum "$F" | cut -d' ' -f1)"
|
||||||
|
echo "candidate-bytes: $(wc -c < "$F")"
|
||||||
|
echo "candidate-b64-lines: $(echo "$B64" | wc -l)"
|
||||||
|
set -x
|
||||||
# Put the tree back exactly as it was; this job never mutates state.
|
# Put the tree back exactly as it was; this job never mutates state.
|
||||||
rm -f alembic/versions/*.py
|
rm -f alembic/versions/*.py
|
||||||
mv /tmp/versions_held/*.py alembic/versions/ 2>/dev/null || true
|
mv /tmp/versions_held/*.py alembic/versions/ 2>/dev/null || true
|
||||||
|
|||||||
Reference in New Issue
Block a user