Skip to content
Latchkey

Node.js CI workflow (http-party/http-server)

The Node.js CI workflow from http-party/http-server, explained and optimized by Latchkey.

C

CI health: C - fair

Run this on Latchkey for self-healing, caching, and up to 58% lower cost.

Grade your own workflow free or run it on Latchkey →
Source: http-party/http-server.github/workflows/node.js.ymlLicense MITView source

What it does

This is the Node.js CI workflow from the http-party/http-server repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

The workflow

workflow (.yml)
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    name: Test
    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        node-version: [20.x, 22.x, 24.x]
        os: [ubuntu-latest, macOS-latest, windows-latest]

    steps:
    - uses: actions/checkout@v4.2.2
    - name: Use Node.js ${{ matrix.node-version }} on ${{ matrix.os }}
      uses: actions/setup-node@v4.1.0
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npx npm@7 ci
    - run: npm test

The same workflow, on Latchkey

Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.

# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
 
name: Node.js CI
 
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  build:
    timeout-minutes: 30
    name: Test
    runs-on: ${{ matrix.os }}
 
    strategy:
      fail-fast: false
      matrix:
        node-version: [20.x, 22.x, 24.x]
        os: [ubuntu-latest, macOS-latest, windows-latest]
 
    steps:
    - uses: actions/checkout@v4.2.2
    - name: Use Node.js ${{ matrix.node-version }} on ${{ matrix.os }}
      uses: actions/setup-node@v4.1.0
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npx npm@7 ci
    - run: npm test
 

What changed

This workflow runs 1 job (9 with the matrix expanded) per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.

Actions used in this workflow