JavaScript Academy · Lektion

Grunderna i CI — kör lintning och tester vid varje push

Konfigurera ett litet CI-flöde: installera med npm ci, kör lintning och tester och behåll en snabb återkopplingsloop.

Lektion 3 av 38 steg

Grunderna i CI — kör lintning och tester vid varje push är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 3 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Varför CI för nybörjare?

Mål: Köra kontroller vid varje push.

  • Installera med npm ci
  • Kör skripten lint och test
  • Snabb återkoppling och enkla loggar
  • Håll pipelinen liten för nybörjare
Grunderna i CI — kör lintning och tester vid varje push — illustration 1

Skript som CI kör

Skapa små lint- och test-skript i package.json så att CI kan köra dem.

// Minimal scripts your CI will call
const pkgScripts = {
  lint: "eslint .",
  test: "node test-runner.js"
};

console.log("scripts:", Object.keys(pkgScripts));
console.log("lint ->", pkgScripts.lint);
console.log("test ->", pkgScripts.test);
Grunderna i CI — kör lintning och tester vid varje push — illustration 2

Pipeline-steg

En liten pipeline: checkout → Node → npm ci → lint → test → resultat.

// Simulate CI steps with prints
function runCI() {
  console.log("🔹 Checkout code");
  console.log("🔹 Use Node 20");
  console.log("🔹 Install deps with npm ci");
  console.log("🔹 Run: npm run lint");
  console.log("🔹 Run: npm test");
  console.log("✅ If all pass, mark build green");
}

runCI();
Grunderna i CI — kör lintning och tester vid varje push — illustration 3

GH Actions (minimalt)

Det här enkla arbetsflödet körs vid pushar och PR:er, installerar med npm ci och kör sedan lint och test.

// Print a minimal GitHub Actions workflow (as lines)
const gha = [
  "name: ci",
  "on: [push, pull_request]",
  "jobs:",
  "  build:",
  "    runs-on: ubuntu-latest",
  "    steps:",
  "      - uses: actions/checkout@v4",
  "      - uses: actions/setup-node@v4",
  "        with:",
  "          node-version: 20",
  "      - run: npm ci",
  "      - run: npm run lint",
  "      - run: npm test"
];

for (const l of gha) console.log(l);
Grunderna i CI — kör lintning och tester vid varje push — illustration 4

Snabbhet och tydlighet

Korta tester och tydliga resultat gör CI lättillgängligt för nybörjare; lägg till fler steg senare.

// Keep CI snappy: small tests, small logs
function ciTips() {
  console.log("• Keep tests small and fast");
  console.log("• Fail early; print clear messages");
  console.log("• Cache deps (advanced later)");
  console.log("• Lint + unit tests first; more later");
}
ciTips();
Grunderna i CI — kör lintning och tester vid varje push — illustration 5

Tester som CI kan köra

Ditt npm test kan till en början köra ett litet skript; byt till Jest/Vitest senare.

// A tiny local test runner you can call in CI
function assertEqual(actual, expected, name) {
  if (actual === expected) console.log("✅", name);
  else console.log("❌", name, "expected:", expected, "got:", actual);
}

function add(a, b) { return a + b; }
assertEqual(add(2, 3), 5, "add adds numbers");

function isAdult(age) { return age >= 18; }
assertEqual(isAdult(18), true, "adult boundary");
Grunderna i CI — kör lintning och tester vid varje push — illustration 6

Quiz om CI:s installationskommando

Snabbkontroll: Installation i CI som följer låsfilen.

Grunderna i CI — kör lintning och tester vid varje push — illustration 7

Sammanfattning

Sammanfattning: CI körs vid varje push: npm ci → lint → test. Håll kontrollerna små och tydliga så att nybörjare snabbt får återkoppling.

Grunderna i CI — kör lintning och tester vid varje push — illustration 8
Gratis att börja

Lär dig JavaScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
59
Lektioner
200

Vanliga frågor

Är lektionen ”Grunderna i CI — kör lintning och tester vid varje push” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Grunderna i CI — kör lintning och tester vid varje push”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Grunderna i CI — kör lintning och tester vid varje push”?

Konfigurera ett litet CI-flöde: installera med npm ci, kör lintning och tester och behåll en snabb återkopplingsloop. Ni övar på JavaScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig JavaScript Academy?

Du behöver inga förkunskaper. Utbildningen i JavaScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 3.

Hur lång tid tar lektionen ”Grunderna i CI — kör lintning och tester vid varje push”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här JavaScript Academy-lektionen?

Ja. Varje JavaScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Testtänkande — små assertioner, AAA, röd→grön→refaktorering
  2. Lintning med ESLint och formatering med Prettier
  3. Grunderna i CI — kör lintning och tester vid varje push
← Tillbaka till JavaScript Academy