Node CI #770
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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: [ "master" ] | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- # test every sunday, if the setup still works | |
cron: '20 4 * * SUN' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
## 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-latest"] | |
node-version: | |
# action based on https://github.com/actions/node-versions/releases | |
# see also: https://nodejs.org/en/about/releases/ | |
- "20" # Current | |
- "18" # Active LTS | |
- "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-latest"] | |
node-version: | |
# action based on https://github.com/actions/node-versions/releases | |
# see also: https://nodejs.org/en/about/releases/ | |
- "20" # Current | |
- "18" # Active LTS | |
- "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/ | |
- "20" # Current | |
- "18" # Active LTS | |
- "16" | |
pnpm-version: [ "latest" ] | |
include: | |
- 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@v2.4.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 |