Skip to content

Node CI

Node CI #851

Workflow file for this run

# For details of what checks are run for PRs please refer below
# docs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
name: Node CI
on:
push:
branches: [ "main", "master", "next" ]
tags: [ "v*" ]
pull_request:
workflow_dispatch:
schedule:
- # dependencies are intended to be not pinned
# test every night, if the setup still works
cron: '42 23 * * *'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
# https://nodejs.dev/en/about/releases/
NODE_ACTIVE_LTS: "20"
## As this project is a meta-package, there are no functionalities nor tests.
## So the only responsibility that must be assured is: this project can be installed under all circumstances.
jobs:
test-npm-install:
name: NPM install (node${{ matrix.node-version }}, ${{ matrix.os }})
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-13 # macos-latest has issues with node14
node-version:
# action based on https://github.com/actions/node-versions/releases
# see also: https://nodejs.org/en/about/releases/
- "22" # Current
- "20" # Active LTS
- "18"
- "16"
- "14"
steps:
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
# see https://github.com/actions/setup-node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: install project
run: >
npm install
--no-audit
--no-package-lock
--verbose
# proven: the package can be installed. that's enough for a meta-package
test-yarn-install:
name: YARN install (node${{ matrix.node-version }}, ${{ matrix.os }})
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-13 # macos-latest has issues with node14
node-version:
# action based on https://github.com/actions/node-versions/releases
# see also: https://nodejs.org/en/about/releases/
- "22" # Current
- "20" # Active LTS
- "18"
- "16"
- "14"
steps:
- name: Checkout
## see https://github.com/actions/checkout
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
# see https://github.com/actions/setup-node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: install project
run: >
yarn install
--inline-builds
# proven: the package can be installed. that's enough for a meta-package
test-pnpm-install:
name: PNPM install (node${{ matrix.node-version }}, ${{ matrix.os }})
timeout-minutes: 5
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
node-version:
# action based on https://github.com/actions/node-versions/releases
# see also: https://nodejs.org/en/about/releases/
- "22" # Current
- "20" # Active LTS
- "18"
pnpm-version: [ "latest" ]
include:
- os: "ubuntu-latest"
node-version: "16"
pnpm-version: "latest-8" # see https://www.npmjs.com/package/pnpm/?activeTab=versions
- os: "ubuntu-latest"
node-version: "14"
pnpm-version: "latest-7" # see https://www.npmjs.com/package/pnpm/?activeTab=versions
steps:
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
# see https://github.com/actions/setup-node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: setup pnpm
## see https://github.com/pnpm/action-setup
uses: pnpm/action-setup@v4.0.0
with:
version: ${{ matrix.pnpm-version }}
- name: install project
run: >
pnpm install
--no-lockfile
--verbose
# proven: the package can be installed. that's enough for a meta-package