to help ensure all verification passes before deciding to update the development version (partly to help automate this process with renovate)
88 lines
2.4 KiB
YAML
88 lines
2.4 KiB
YAML
name: Test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
# renovate/** branches are generated by https://github.com/apps/renovate
|
|
- renovate/**
|
|
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- synchronize
|
|
|
|
permissions:
|
|
contents: read # to fetch code (actions/checkout)
|
|
|
|
env:
|
|
FORCE_COLOR: 1
|
|
NPM_CONFIG_COLOR: always
|
|
|
|
jobs:
|
|
# verify against ranges defined as supported in engines.node
|
|
test_matrix:
|
|
strategy:
|
|
matrix:
|
|
node-version:
|
|
- 18.17.0
|
|
- 20.6.1
|
|
- 20
|
|
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
|
|
steps:
|
|
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
|
- run: git config --global user.name github-actions
|
|
- run: git config --global user.email github-actions@github.com
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: npm
|
|
- run: npm clean-install
|
|
- run: npm audit signatures
|
|
- run: npm test
|
|
|
|
# verify against the node version defined for development in the .nvmrc
|
|
test_dev:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
|
|
steps:
|
|
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
|
|
- run: git config --global user.name github-actions
|
|
- run: git config --global user.email github-actions@github.com
|
|
- name: Use Node.js from .nvmrc
|
|
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
|
with:
|
|
node-version-file: .nvmrc
|
|
cache: npm
|
|
- run: npm clean-install
|
|
- run: npm audit signatures
|
|
- run: npm test
|
|
|
|
# separate job to set as required in branch protection,
|
|
# as the build names above change each time Node versions change
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- test_dev
|
|
- test_matrix
|
|
if: always()
|
|
steps:
|
|
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
|
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
|
with:
|
|
node-version: lts/*
|
|
cache: npm
|
|
- run: npm clean-install
|
|
- run: npm run lint
|
|
- name: All matrix versions passed
|
|
if: ${{ !(contains(needs.*.result, 'failure')) }}
|
|
run: exit 0
|
|
- name: Some matrix version failed
|
|
if: ${{ contains(needs.*.result, 'failure') }}
|
|
run: exit 1
|