Paket 03 delat: källkod för sig, bildresurser i storleksbegränsade delar

Webbpaketet på 10 MB var större än mottagarkanalen tålde. Koden
(03-webb-kalla) och bildresurserna i app/src/assets (03-webb-resurser-N,
högst DELBUDGET byte per del, standard 4 MB) paketeras nu var för sig;
delarna fylls i namnordning så att samma träd ger samma delar.
Anvisningen slår fast att delarna är ETT steg — alla packas upp i
samma träd före bygget, med fullständighetskontroll mot fillistorna
före i stället för importfel under bygget.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
Claude
2026-08-07 13:22:50 +00:00
parent 7e1793b8ac
commit 834823ed74
4 changed files with 50 additions and 4 deletions
+27 -2
View File
@@ -17,13 +17,20 @@ VERSION="$(node -e 'import(process.argv[1]).then(m => console.log(m.PLATTFORMSVE
SHA="$(git -C "$ROT" rev-parse --short HEAD 2>/dev/null || echo "utan-git")"
STAMPEL="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
# Största tillåtna innehåll per resursdel. Mottagarsidans kanal sätter
# gränsen — 10 MB gick inte att ta emot; standarden ligger med marginal
# under det och kan sänkas per körning: DELBUDGET=2000000 bash paketera.sh …
DELBUDGET="${DELBUDGET:-4000000}"
# paketera <namn> <anvisningsfil> <väg>... — vägarna är relativa ROT.
# EXKLUDERA (miljövariabel) läggs till tar-exkluderingarna för anropet.
paketera() {
local namn="$1" anvisning="$2"; shift 2
local arbets; arbets="$(mktemp -d)"
# node_modules återskapas ur package-lock; dist byggs i webbilden.
tar -C "$ROT" -cf - --exclude=node_modules --exclude=app/dist "$@" |
tar -C "$ROT" -cf - --exclude=node_modules --exclude=app/dist \
${EXKLUDERA:+--exclude="$EXKLUDERA"} "$@" |
tar -C "$arbets" -xf -
# Metafilerna ligger under paket/<namn>/ så att alla paket kan packas
@@ -45,7 +52,25 @@ rm -f "$UT"/0[0-5]-*.zip
paketera 01-aws-bas 01-aws-bas.md infra/aws infra/postgres-init.sql
paketera 02-tjanster 02-tjanster.md services
paketera 03-webb 03-webb.md app supabase
# Webbklienten delas: koden för sig och bildresurserna i delar om högst
# DELBUDGET byte — helheten var större än mottagarkanalen tålde. Delarna
# fylls i namnordning, så samma träd ger samma delar.
EXKLUDERA="app/src/assets" paketera 03-webb-kalla 03-webb.md app supabase
del=0 ack=0 resurser=()
slut_resursdel() {
((${#resurser[@]})) || return 0
del=$((del + 1))
paketera "03-webb-resurser-$del" 03-webb.md "${resurser[@]}"
ack=0 resurser=()
}
while IFS= read -r fil; do
storlek=$(stat -c%s "$ROT/$fil")
((ack > 0 && ack + storlek > DELBUDGET)) && slut_resursdel
resurser+=("$fil"); ack=$((ack + storlek))
done < <(cd "$ROT" && find app/src/assets -type f | sort)
slut_resursdel
paketera 04-arbetslast 04-arbetslast.md infra/terraform
paketera 05-verifiering 05-verifiering.md docs