Skip to content

chore: Add Nsolid runtime to CI tests #7

chore: Add Nsolid runtime to CI tests

chore: Add Nsolid runtime to CI tests #7

Workflow file for this run

name: ci
on:
push:
branches:
- main
- master
- next
- 'v*'
paths-ignore:
- 'docs/**'
- '*.md'
pull_request:
paths-ignore:
- 'docs/**'
- '*.md'
# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true
jobs:
dependency-review:
name: Dependency Review
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Dependency review
uses: actions/dependency-review-action@v4
check-licenses:
name: Check licenses
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'npm'
cache-dependency-path: package.json
- name: Install
run: |
npm install --ignore-scripts
- name: Check licenses
run: |
npx license-checker --production --summary --onlyAllow="0BSD;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;MIT;"
lint:
name: Lint
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'npm'
cache-dependency-path: package.json
- name: Install
run: |
npm install --ignore-scripts
- name: Lint code
run: |
npm run lint
coverage-nix:
needs: lint
permissions:
contents: read
uses: ./.github/workflows/coverage-nix.yml
coverage-win:
needs: lint
permissions:
contents: read
uses: ./.github/workflows/coverage-win.yml
test-unit:
needs:
- lint
- coverage-nix
- coverage-win
runs-on: ${{ matrix.os }}
permissions:
contents: read
name: Unit Test ${{ matrix.runtime }}${{ matrix.node-version }} - ${{ matrix.os }}
strategy:
matrix:
runtime: [node, nsolid]
os: [macos-latest, ubuntu-latest, windows-latest]
include:
- runtime: node
node-version: 14
os: [macos-latest, ubuntu-latest, windows-latest]
- runtime: node
node-version: 16
os: [macos-latest, ubuntu-latest, windows-latest]
- runtime: node
node-version: 18
os: [macos-latest, ubuntu-latest, windows-latest]
- runtime: node
node-version: 20
os: [macos-latest, ubuntu-latest, windows-latest]
- runtime: nsolid
nsolid-version: 5
os: [macos-latest, ubuntu-latest, windows-latest]
- runtime: nsolid
nsolid-version: 5
node-version: 18
os: [macos-latest, ubuntu-latest, windows-latest]
exclude:
# excludes node 14 on Windows
- runtime: node
node-version: '14'

Check failure on line 138 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / ci

Invalid workflow file

The workflow is not valid. .github/workflows/ci.yml (Line: 138, Col: 13): Matrix exclude key 'node-version' does not match any key within the matrix
os: 'windows-latest'
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Use Node.js
if: ${{ !matrix.nsolid-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: package.json
- uses: actions/checkout@v4
- uses: nodesource/setup-nsolid@v1
if: ${{ matrix.nsolid-version }}
with:
node-version: ${{ matrix.node-version }}
nsolid-version: ${{ matrix.nsolid-version }}
- name: Install
run: |
npm install --ignore-scripts
- name: Run tests
run: |
npm run unit
test-typescript:
needs:
- lint
- coverage-nix
- coverage-win
runs-on: 'ubuntu-latest'
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: package.json
- name: Install
run: |
npm install --ignore-scripts
- name: Run typescript tests
run: |
npm run test:typescript
env:
NODE_OPTIONS: no-network-family-autoselection
package:
needs:
- test-typescript
- test-unit
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
cache: 'npm'
cache-dependency-path: package.json
- name: install fastify
run: |
npm install --ignore-scripts
- name: install webpack stack
run: |
cd test/bundler/webpack && npm install
- name: Test webpack bundle
run: |
cd test/bundler/webpack && npm run test
- name: install esbuild stack
run: |
cd test/bundler/esbuild && npm install
- name: Test esbuild bundle
run: |
cd test/bundler/esbuild && npm run test
automerge:
if: >
github.event_name == 'pull_request' &&
github.event.pull_request.user.login == 'dependabot[bot]'
needs:
- test-typescript
- test-unit
- package
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- uses: fastify/github-action-merge-dependabot@v3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}