Skip to content

Actions: test on latest Node.js LTS as well [skip build] #1752

Actions: test on latest Node.js LTS as well [skip build]

Actions: test on latest Node.js LTS as well [skip build] #1752

Workflow file for this run

# SPDX-FileCopyrightText: © 2020–2025 Luna Brand, Kevin Lu
# SPDX-Licence-Identifier: AGPL-3.0-or-later
name: Compile and test
on:
push:
branches: [master]
pull_request:
branches: [master]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
node-version:
- 20
- 22
runs-on: ${{ matrix.os }}
if: >-
!(
contains(github.event.head_commit.message, '[skip test]') ||
contains(github.event.head_commit.message, '[test skip]')
)
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: yarn
- run: yarn
- run: yarn build
- run: yarn test
env:
DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }},
OCTOKIT_TOKEN: ${{ secrets.OCTOKIT_TOKEN }},
MONGODB_URL: mongodb://localhost:27017/tournamentdb,
CHALLONGE_USERNAME: ${{ secrets.CHALLONGE_USERNAME }},
CHALLONGE_TOKEN: ${{ secrets.CHALLONGE_TOKEN }},
POSTGRESQL_URL: postgresql://localhost/nonexistent
# Rarely, the test suite may hang because a delayed start of the test container causes tests to fail
# and container clean-up to not happen, so the Node process does not exit and continues to wait on
# the test container.
timeout-minutes: 1
- run: yarn cover
- run: yarn lint