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:
@@ -15,7 +15,8 @@ bash felsokning/deploy/paketera.sh <målkatalog>
|
|||||||
| `00-plan.zip` | Driftsättningsplanen + SHA256-summor för övriga paket | Läses först, verifierar leveransen |
|
| `00-plan.zip` | Driftsättningsplanen + SHA256-summor för övriga paket | Läses först, verifierar leveransen |
|
||||||
| `01-aws-bas.zip` | `infra/aws` + `infra/postgres-init.sql` | Terraform: VPC, EKS, Aurora, S3, ECR, KMS, hemligheter, domän, larm |
|
| `01-aws-bas.zip` | `infra/aws` + `infra/postgres-init.sql` | Terraform: VPC, EKS, Aurora, S3, ECR, KMS, hemligheter, domän, larm |
|
||||||
| `02-tjanster.zip` | `services/` — plattform, ai-orkester, gemensam | Bygg och publicera backendbilderna till ECR, initiera schemat |
|
| `02-tjanster.zip` | `services/` — plattform, ai-orkester, gemensam | Bygg och publicera backendbilderna till ECR, initiera schemat |
|
||||||
| `03-webb.zip` | `app/` (utan `node_modules`/`dist`) + `supabase/` | Bygg och publicera webbilden |
|
| `03-webb-kalla.zip` | `app/` (utan `node_modules`/`dist`/`src/assets`) + `supabase/` | Bygg och publicera webbilden |
|
||||||
|
| `03-webb-resurser-*.zip` | `app/src/assets` i delar om högst `DELBUDGET` byte (standard 4 MB) | Hör till 03 — packas upp i samma träd före bygget |
|
||||||
| `04-arbetslast.zip` | `infra/terraform` | Terraform: arbetslasten i klustret, ingress, DNS |
|
| `04-arbetslast.zip` | `infra/terraform` | Terraform: arbetslasten i klustret, ingress, DNS |
|
||||||
| `05-verifiering.zip` | `docs/` | Slutkontroll av den driftsatta miljön, driftdokumentation |
|
| `05-verifiering.zip` | `docs/` | Slutkontroll av den driftsatta miljön, driftdokumentation |
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ extern byggtjänst, inget externt register.
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `01-aws-bas.zip` | AWS-basen: VPC, EKS, Aurora, S3, ECR, KMS, Secrets Manager, Route 53, larm | Agent med AWS-behörighet |
|
| `01-aws-bas.zip` | AWS-basen: VPC, EKS, Aurora, S3, ECR, KMS, Secrets Manager, Route 53, larm | Agent med AWS-behörighet |
|
||||||
| `02-tjanster.zip` | Backendbilderna (plattform, ai-orkester) byggs, testas och publiceras; databasschemat initieras | Agent med Docker + ECR-push |
|
| `02-tjanster.zip` | Backendbilderna (plattform, ai-orkester) byggs, testas och publiceras; databasschemat initieras | Agent med Docker + ECR-push |
|
||||||
| `03-webb.zip` | Webbilden byggs med miljöns byggargument och publiceras | Agent med Docker + ECR-push |
|
| `03-webb-kalla.zip` + `03-webb-resurser-*.zip` | Webbilden byggs med miljöns byggargument och publiceras — delarna är ETT steg, alla packas upp först | Agent med Docker + ECR-push |
|
||||||
| `04-arbetslast.zip` | Arbetslasten i klustret: tjänster, ingress, DNS, nätverkspolicyer | Agent med kluster-behörighet |
|
| `04-arbetslast.zip` | Arbetslasten i klustret: tjänster, ingress, DNS, nätverkspolicyer | Agent med kluster-behörighet |
|
||||||
| `05-verifiering.zip` | Slutkontroll av den driftsatta miljön | Valfri agent, läsbehörighet räcker |
|
| `05-verifiering.zip` | Slutkontroll av den driftsatta miljön | Valfri agent, läsbehörighet räcker |
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,26 @@ publiceras webbilden — en statisk SPA bakom oprivilegierad nginx.
|
|||||||
Kräver att paket 01 är klart. Oberoende av paket 02 — får köras
|
Kräver att paket 01 är klart. Oberoende av paket 02 — får köras
|
||||||
parallellt, men med SAMMA bildtagg.
|
parallellt, men med SAMMA bildtagg.
|
||||||
|
|
||||||
|
## Delarna — packa upp allihop innan något byggs
|
||||||
|
|
||||||
|
Paket 03 levereras i flera zip-filer: `03-webb-kalla` (källkoden) och
|
||||||
|
`03-webb-resurser-1…N` (bildresurserna i `app/src/assets`, delade i
|
||||||
|
storleksbegränsade delar för överföringens skull). Delningen är
|
||||||
|
teknisk, inte logisk — de är ETT steg:
|
||||||
|
|
||||||
|
1. Packa upp samtliga `03-webb-*`-filer i samma arbetsträd som övriga
|
||||||
|
paket. Vilka delar som finns framgår av `SHA256SUMS.txt` i paket 00.
|
||||||
|
2. Kontrollera fullständigheten mot delarnas fillistor:
|
||||||
|
```sh
|
||||||
|
cat paket/03-webb-*/INNEHALL.txt | grep '^app/src/assets/' | sort | while read -r f; do
|
||||||
|
[ -f "$f" ] || echo "SAKNAS: $f"
|
||||||
|
done # ingen utskrift = komplett
|
||||||
|
```
|
||||||
|
|
||||||
|
Saknas en resursfil faller för övrigt bygget på importfel — men
|
||||||
|
kontrollera FÖRE, så att felmeddelandet är "del saknas", inte en
|
||||||
|
kryptisk byggutskrift.
|
||||||
|
|
||||||
## Steg 1 — testa före bygge
|
## Steg 1 — testa före bygge
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|||||||
@@ -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")"
|
SHA="$(git -C "$ROT" rev-parse --short HEAD 2>/dev/null || echo "utan-git")"
|
||||||
STAMPEL="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
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.
|
# paketera <namn> <anvisningsfil> <väg>... — vägarna är relativa ROT.
|
||||||
|
# EXKLUDERA (miljövariabel) läggs till tar-exkluderingarna för anropet.
|
||||||
paketera() {
|
paketera() {
|
||||||
local namn="$1" anvisning="$2"; shift 2
|
local namn="$1" anvisning="$2"; shift 2
|
||||||
local arbets; arbets="$(mktemp -d)"
|
local arbets; arbets="$(mktemp -d)"
|
||||||
|
|
||||||
# node_modules återskapas ur package-lock; dist byggs i webbilden.
|
# 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 -
|
tar -C "$arbets" -xf -
|
||||||
|
|
||||||
# Metafilerna ligger under paket/<namn>/ så att alla paket kan packas
|
# 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 01-aws-bas 01-aws-bas.md infra/aws infra/postgres-init.sql
|
||||||
paketera 02-tjanster 02-tjanster.md services
|
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 04-arbetslast 04-arbetslast.md infra/terraform
|
||||||
paketera 05-verifiering 05-verifiering.md docs
|
paketera 05-verifiering 05-verifiering.md docs
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user