name: CI on: pull_request: push: branches: [main] jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm - run: npm ci - run: npm run lint - run: npm run format:check - run: npm run typecheck - run: npm test # ALVA låg utanför pipelinen. Roten kör `npm test --workspaces`, och # felsokning/app är inte ett workspace — så samtliga 311 tester # passerade bara när någon körde dem för hand. # # Det betyder att varje garanti de två revisionerna kallar "låst av ett # test" — härkomsten, det stängda schemat, kvalitetsgrinden, # högvoltsspärren, ALVA-RULE-200 — i praktiken var olåst. Ett test som # ingen kör är dokumentation, inte en spärr. alva: runs-on: ubuntu-latest defaults: run: working-directory: felsokning/app steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm cache-dependency-path: felsokning/app/package-lock.json - run: npm ci - run: npm run lint - run: npm run typkontroll - run: npm test # Genomgången: hela ärenden genom det byggda gränssnittet. # # Egen jobbrad därför att den kräver en webbläsare och tar längre tid. # Den fångar en annan sorts fel än enhetstesterna: tre defekter i förra # cykeln levde i ÖVERENSKOMMELSEN mellan moduler — mellan klient och # grind, mellan metodikens krav och den evidens den producerar — och # inget av dem syntes i en grön svit. genomgang: runs-on: ubuntu-latest defaults: run: working-directory: felsokning/app steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm cache-dependency-path: felsokning/app/package-lock.json - run: npm ci - run: npx playwright install --with-deps chromium - run: npm run genomgang # Portalspärren kräver ett eget bygge (plattformen konfigurerad), # så den kan inte ligga i genomgången. - run: npm run portalsparr # Plattformstjänsten mot en riktig Postgres. # # Den här sviten fanns redan och kördes aldrig, vilket lät två fel leva # i backenden: en append-only-trigger som gjorde det omöjligt att skriva # ärendets härledda gallringsdatum — så varje avslut föll med 500 — och # en fordonshistorik som sökte i klartext efter en identifierare som # krypteras i vila, och därför svarade tomt på varje fordon. Med 200. # # Bägge kräver en databas för att synas. Enhetstester med attrapper hade # inte kunnat hitta någotdera, och gjorde det inte heller. plattform: runs-on: ubuntu-latest defaults: run: working-directory: felsokning/services/plattform steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: sudo apt-get update && sudo apt-get install -y postgresql - run: npm ci # Skriptet startar sin egen Postgres med initdb och behöver därför # köra som root; -E env PATH behåller runnerns node. - run: sudo -E env "PATH=$PATH" bash integrationstest.sh