Skip to content

Node compatibility

Node compatibility #2

Workflow file for this run

name: Node compatibility
on:
schedule:
- cron: "23 3 * * 1"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
compatibility:
name: compatibility (${{ matrix.os }}, ${{ matrix.node }})
runs-on: ${{ matrix.os }}
# This job runs the same platform profile the CI verify job runs, so it
# needs the same ceiling.
timeout-minutes: 40
strategy:
fail-fast: false
matrix:
# Windows validation is temporarily paused until its checks are reliable.
os: [ubuntu-latest, macos-latest]
node: ["22.19.0", "24.2.0", "25", "26"]
include:
- os: ubuntu-latest
node: "22.19.0"
profile: full
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ matrix.node }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm verify --profile ${{ matrix.profile || 'platform' }}
env:
MCODE_VERIFY_REPORT_DIR: ${{ runner.temp }}/verification
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
if: ${{ always() }}
timeout-minutes: 2
with:
name: compatibility-${{ matrix.os }}-node-${{ matrix.node }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/verification/
retention-days: 7