Skip to content

Replace Appveyor windows testing with GHA #19

Replace Appveyor windows testing with GHA

Replace Appveyor windows testing with GHA #19

name: Experimental CI -- CHANGE ME!
on:
push:
branches:
- master
- develop
- '4.x'
- '5.x'
paths-ignore:
- '*.md'
pull_request:
paths-ignore:
- '*.md'
concurrency:
group: "${{ github.workflow }} ✨ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
persist-credentials: false
- name: Install dependencies
run: npm install --ignore-scripts --only=dev
- name: Run lint
run: npm run lint
coverage:
name: LTS Code Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
persist-credentials: false
- name: Install dependencies
run: npm install --ignore-scripts --only=dev
- name: Collect coverage
run: npm run test-ci
- name: Upload code coverage report to Github
uses: actions/upload-artifact@v3
with:
name: lts-coverage
path: ./coverage
retention-days: 1
- name: Upload coverage report to Coveralls
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: lts
test:
name: Run tests
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
node-version:
- "0.10.x"
- "0.12.x"
- "4.x"
- "5.x"
- "6.x"
- "7.x"
- "8.x"
- "9.x"
- "10.x"
- "11.x"
- "12.x"
- "13.x"
- "14.x"
- "15.x"
- "16.x"
- "17.x"
- "18.x"
- "19.x"
- "20.x"
- "21.x"
# Use supported versions of our testing tools under older versions of Node
include:
- node-version: "0.10.x"
npm-i: "[email protected] [email protected] [email protected]"
- node-version: "0.12.x"
npm-i: "[email protected] [email protected] [email protected]"
- node-version: "4.x"
npm-i: "[email protected] [email protected] [email protected]"
- node-version: "5.x"
npm-i: "[email protected] [email protected] [email protected]"
- node-version: "6.x"
npm-i: "[email protected] [email protected] [email protected]"
- node-version: "7.x"
npm-i: "[email protected] [email protected] [email protected]"
- node-version: "8.x"
npm-i: "[email protected] [email protected]"
- node-version: "9.x"
npm-i: "[email protected] [email protected]"
- node-version: "10.x"
npm-i: "[email protected]"
- node-version: "11.x"
npm-i: "[email protected]"
- node-version: "12.x"
npm-i: "[email protected]"
- node-version: "13.x"
npm-i: "[email protected]"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
# fixes https://github.com/npm/cli/issues/681
- name: Node v5 npm install fix
if: ${{matrix.node-version == '5.x'}}
run: npm install -g [email protected]
- name: Configure npm -- disable lockfile/shrinkwrap
run: |
npm config set loglevel error
npm_config_package_lock=$(npm config get package-lock)
if [ "$npm_config_package_lock" = "true" ] || [ "$npm_config_package_lock" = "True" ]; then
npm config set package-lock false
else
npm config set shrinkwrap false
fi
shell: bash
- name: Install dependencies
run: npm install
- name: Install Node version specific dev deps
if: ${{ matrix.npm-i != '' }}
run: npm install --save-dev ${{ matrix.npm-i }}
- name: Remove non-test dependencies
run: npm rm --silent --save-dev connect-redis
- name: Run tests
run: npm test
- name: Output Node and NPM versions
run: |
echo "Node.js version: $(node -v)"
echo "NPM version: $(npm -v)"