Naar inhoud springen

Knooppunt.js

Node.js CI op GitHub Actions

npm ci schrijft bij elke run tienduizenden kleine bestanden.

95s → 11s
npm ci
6m → 2m
Volledige pijplijn
6 GB/sec
Schijfdoorvoer

npm ci schrijft bij elke run tienduizenden kleine bestanden.

Waarom het gebeurt

node_modules is een stresstest voor het bestandssysteem, en netwerkgekoppelde CI-opslag is de slechtst mogelijke plaats om er een uit te voeren.

Wat te veranderen

  1. Cache ~/.npm en herstel node_modules rechtstreeks in plaats van opnieuw te installeren
  2. Ga naar pnpm: de op inhoud geadresseerde winkel zorgt ervoor dat installaties vrijwel onmiddellijk in een warme cache worden uitgevoerd
  3. Ren op een hardloper met lokale NVMe; deze werklast is schijfgebonden en niet CPU-gebonden
  4. Gebruik --prefer-offline zodat een warme cache niet opnieuw wordt gevalideerd via het netwerk

Node.js op runnerhut

yaml
jobs:
test:
runs-on: runnerhut-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 22, cache: npm }
- run: npm ci --prefer-offline
- run: npm test
Een werkend uitgangspunt

De enige runnerhut-specifieke regel is `runs-on: runnerhut-4vcpu-ubuntu-2404`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.

Je volgende build kan twee keer zo snel zijn, voor de halve prijs

Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.