Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: Node.js CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:


runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test
Comment on lines +23 to +32

Copilot AI Apr 9, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow runs npm ci/npm run build/npm test from the repository root, but this repo doesn’t have a root-level package.json (the Node project lives under leaderboard-web-server/). As written, these steps will fail. Consider setting defaults.run.working-directory: leaderboard-web-server for the job, or adding working-directory: leaderboard-web-server to each run step (and ensure checkout still happens at repo root).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +32

Copilot AI Apr 9, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm ci requires a package-lock.json in the working directory, but the Node project currently has a yarn.lock (and no package-lock.json). This will cause CI to error. Either switch the workflow to Yarn (e.g., enable corepack and run yarn install --frozen-lockfile / yarn build), or commit a lockfile compatible with npm ci and keep dependency installs consistent.

Suggested change
cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test
cache: 'yarn'
- run: corepack enable
- run: yarn install --frozen-lockfile
- run: yarn run --if-present build
- run: yarn test

Copilot uses AI. Check for mistakes.

Copilot AI Apr 9, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow runs npm test, but the Node project’s package.json does not define a test script, so this step will fail. Either add a test script (and corresponding tests) or replace this step with an existing check (e.g., npm run build or npm run lint if available).

Suggested change
- run: npm test
- run: npm test --if-present

Copilot uses AI. Check for mistakes.