mirror of
https://github.com/zebrajr/express.git
synced 2025-12-06 12:19:51 +01:00
Replace Appveyor windows testing with GHA (#5599)
This PR moves us off of Appveyor for windows testing. We are now doing windows/linux testing on GHA. With the exception of iojs, which we are only testing on Linux and have split out to it's own workflow. We have also added npm-shrinkwrap.json to our gitignore, in order to not have to configure npm in CI to ignore it. If it's never checked in, it shouldn't exist in CI as you need to go out of your way to create it w/ npm.
This commit is contained in:
parent
2ec589c113
commit
f4bd86ed36
268
.github/workflows/ci.yml
vendored
268
.github/workflows/ci.yml
vendored
|
|
@ -20,187 +20,149 @@ concurrency:
|
|||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Node.js {{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 'lts/*'
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install --ignore-scripts --only=dev
|
||||
|
||||
- name: Run lint
|
||||
run: npm run lint
|
||||
|
||||
test:
|
||||
name: Run tests
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
name:
|
||||
- Node.js 0.10
|
||||
- Node.js 0.12
|
||||
- io.js 1.x
|
||||
- io.js 2.x
|
||||
- io.js 3.x
|
||||
- Node.js 4.x
|
||||
- Node.js 5.x
|
||||
- Node.js 6.x
|
||||
- Node.js 7.x
|
||||
- Node.js 8.x
|
||||
- Node.js 9.x
|
||||
- Node.js 10.x
|
||||
- Node.js 11.x
|
||||
- Node.js 12.x
|
||||
- Node.js 13.x
|
||||
- Node.js 14.x
|
||||
- Node.js 15.x
|
||||
- Node.js 16.x
|
||||
- Node.js 17.x
|
||||
- Node.js 18.x
|
||||
- Node.js 19.x
|
||||
- Node.js 20.x
|
||||
- Node.js 21.x
|
||||
- Node.js 22.x
|
||||
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
node-version:
|
||||
- "0.10"
|
||||
- "0.12"
|
||||
- "4"
|
||||
- "5"
|
||||
- "6"
|
||||
- "7"
|
||||
- "8"
|
||||
- "9"
|
||||
- "10"
|
||||
- "11"
|
||||
- "12"
|
||||
- "13"
|
||||
- "14"
|
||||
- "15"
|
||||
- "16"
|
||||
- "17"
|
||||
- "18"
|
||||
- "19"
|
||||
- "20"
|
||||
- "21"
|
||||
- "22"
|
||||
# Use supported versions of our testing tools under older versions of Node
|
||||
# Install npm in some specific cases where we need to
|
||||
include:
|
||||
- name: Node.js 0.10
|
||||
node-version: "0.10"
|
||||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0
|
||||
- node-version: "0.10"
|
||||
npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
|
||||
# Npm isn't being installed on windows w/ setup-node for
|
||||
# 0.10 and 0.12, which will end up choking when npm uses es6
|
||||
npm-version: "npm@2.15.1"
|
||||
|
||||
- name: Node.js 0.12
|
||||
node-version: "0.12"
|
||||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0
|
||||
- node-version: "0.12"
|
||||
npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
|
||||
npm-version: "npm@2.15.11"
|
||||
|
||||
- name: io.js 1.x
|
||||
node-version: "1"
|
||||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0
|
||||
- node-version: "4"
|
||||
npm-i: "mocha@5.2.0 nyc@11.9.0 supertest@3.4.2"
|
||||
|
||||
- name: io.js 2.x
|
||||
node-version: "2"
|
||||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0
|
||||
- node-version: "5"
|
||||
npm-i: "mocha@5.2.0 nyc@11.9.0 supertest@3.4.2"
|
||||
# fixes https://github.com/npm/cli/issues/681
|
||||
npm-version: "npm@3.10.10"
|
||||
|
||||
- name: io.js 3.x
|
||||
node-version: "3"
|
||||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0
|
||||
- node-version: "6"
|
||||
npm-i: "mocha@6.2.2 nyc@14.1.1 supertest@3.4.2"
|
||||
|
||||
- name: Node.js 4.x
|
||||
node-version: "4"
|
||||
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2
|
||||
- node-version: "7"
|
||||
npm-i: "mocha@6.2.2 nyc@14.1.1 supertest@6.1.6"
|
||||
|
||||
- name: Node.js 5.x
|
||||
node-version: "5"
|
||||
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2
|
||||
- node-version: "8"
|
||||
npm-i: "mocha@7.2.0 nyc@14.1.1"
|
||||
|
||||
- name: Node.js 6.x
|
||||
node-version: "6"
|
||||
npm-i: mocha@6.2.2 nyc@14.1.1 supertest@3.4.2
|
||||
- node-version: "9"
|
||||
npm-i: "mocha@7.2.0 nyc@14.1.1"
|
||||
|
||||
- name: Node.js 7.x
|
||||
node-version: "7"
|
||||
npm-i: mocha@6.2.2 nyc@14.1.1 supertest@6.1.6
|
||||
- node-version: "10"
|
||||
npm-i: "mocha@8.4.0"
|
||||
|
||||
- name: Node.js 8.x
|
||||
node-version: "8"
|
||||
npm-i: mocha@7.2.0 nyc@14.1.1
|
||||
- node-version: "11"
|
||||
npm-i: "mocha@8.4.0"
|
||||
|
||||
- name: Node.js 9.x
|
||||
node-version: "9"
|
||||
npm-i: mocha@7.2.0 nyc@14.1.1
|
||||
- node-version: "12"
|
||||
npm-i: "mocha@9.2.2"
|
||||
|
||||
- name: Node.js 10.x
|
||||
node-version: "10"
|
||||
npm-i: mocha@8.4.0
|
||||
|
||||
- name: Node.js 11.x
|
||||
node-version: "11"
|
||||
npm-i: mocha@8.4.0
|
||||
|
||||
- name: Node.js 12.x
|
||||
node-version: "12"
|
||||
npm-i: mocha@9.2.2
|
||||
|
||||
- name: Node.js 13.x
|
||||
node-version: "13"
|
||||
npm-i: mocha@9.2.2
|
||||
|
||||
- name: Node.js 14.x
|
||||
node-version: "14"
|
||||
|
||||
- name: Node.js 15.x
|
||||
node-version: "15"
|
||||
|
||||
- name: Node.js 16.x
|
||||
node-version: "16"
|
||||
|
||||
- name: Node.js 17.x
|
||||
node-version: "17"
|
||||
|
||||
- name: Node.js 18.x
|
||||
node-version: "18"
|
||||
|
||||
- name: Node.js 19.x
|
||||
node-version: "19"
|
||||
|
||||
- name: Node.js 20.x
|
||||
node-version: "20"
|
||||
|
||||
- name: Node.js 21.x
|
||||
node-version: "21"
|
||||
|
||||
- name: Node.js 22.x
|
||||
node-version: "22"
|
||||
- node-version: "13"
|
||||
npm-i: "mocha@9.2.2"
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install Node.js ${{ matrix.node-version }}
|
||||
shell: bash -eo pipefail -l {0}
|
||||
run: |
|
||||
nvm install --default ${{ matrix.node-version }}
|
||||
dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH"
|
||||
- name: Setup Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
- name: Install npm module(s) ${{ matrix.npm-i }}
|
||||
run: npm install --save-dev ${{ matrix.npm-i }}
|
||||
if: matrix.npm-i != ''
|
||||
- name: Npm version fixes
|
||||
if: ${{matrix.npm-version != ''}}
|
||||
run: npm install -g ${{ matrix.npm-version }}
|
||||
|
||||
- name: Remove non-test dependencies
|
||||
run: npm rm --silent --save-dev connect-redis
|
||||
- name: Configure npm loglevel
|
||||
run: |
|
||||
npm config set loglevel error
|
||||
shell: bash
|
||||
|
||||
- name: Setup Node.js version-specific dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
# eslint for linting
|
||||
# - remove on Node.js < 12
|
||||
if [[ "$(cut -d. -f1 <<< "${{ matrix.node-version }}")" -lt 12 ]]; then
|
||||
node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \
|
||||
grep -E '^eslint(-|$)' | \
|
||||
sort -r | \
|
||||
xargs -n1 npm rm --silent --save-dev
|
||||
fi
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Install Node.js dependencies
|
||||
run: npm install
|
||||
- name: Install Node version specific dev deps
|
||||
if: ${{ matrix.npm-i != '' }}
|
||||
run: npm install --save-dev ${{ matrix.npm-i }}
|
||||
|
||||
- name: List environment
|
||||
id: list_env
|
||||
shell: bash
|
||||
run: |
|
||||
echo "node@$(node -v)"
|
||||
echo "npm@$(npm -v)"
|
||||
npm -s ls ||:
|
||||
(npm -s ls --depth=0 ||:) | awk -F'[ @]' 'NR>1 && $2 { print $2 "=" $3 }' >> "$GITHUB_OUTPUT"
|
||||
- name: Remove non-test dependencies
|
||||
run: npm rm --silent --save-dev connect-redis
|
||||
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
run: |
|
||||
npm run test-ci
|
||||
cp coverage/lcov.info "coverage/${{ matrix.name }}.lcov"
|
||||
- name: Output Node and NPM versions
|
||||
run: |
|
||||
echo "Node.js version: $(node -v)"
|
||||
echo "NPM version: $(npm -v)"
|
||||
|
||||
- name: Lint code
|
||||
if: steps.list_env.outputs.eslint != ''
|
||||
run: npm run lint
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
run: |
|
||||
npm run test-ci
|
||||
cp coverage/lcov.info "coverage/${{ matrix.node-version }}.lcov"
|
||||
|
||||
- name: Collect code coverage
|
||||
run: |
|
||||
mv ./coverage "./${{ matrix.name }}"
|
||||
mkdir ./coverage
|
||||
mv "./${{ matrix.name }}" "./coverage/${{ matrix.name }}"
|
||||
- name: Collect code coverage
|
||||
run: |
|
||||
mv ./coverage "./${{ matrix.node-version }}"
|
||||
mkdir ./coverage
|
||||
mv "./${{ matrix.node-version }}" "./coverage/${{ matrix.node-version }}"
|
||||
|
||||
- name: Upload code coverage
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: coverage
|
||||
path: ./coverage
|
||||
retention-days: 1
|
||||
- name: Upload code coverage
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: coverage
|
||||
path: ./coverage
|
||||
retention-days: 1
|
||||
|
||||
coverage:
|
||||
needs: test
|
||||
|
|
|
|||
69
.github/workflows/iojs.yml
vendored
Normal file
69
.github/workflows/iojs.yml
vendored
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
name: iojs-ci
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '4.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:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: ["1.8", "2.5", "3.3"]
|
||||
include:
|
||||
- node-version: "1.8"
|
||||
npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
|
||||
- node-version: "2.5"
|
||||
npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
|
||||
- node-version: "3.3"
|
||||
npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install iojs ${{ matrix.node-version }}
|
||||
shell: bash -eo pipefail -l {0}
|
||||
run: |
|
||||
nvm install --default ${{ matrix.node-version }}
|
||||
dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Configure npm
|
||||
run: |
|
||||
npm config set loglevel error
|
||||
npm config set shrinkwrap false
|
||||
|
||||
- name: Install npm module(s) ${{ matrix.npm-i }}
|
||||
run: npm install --save-dev ${{ matrix.npm-i }}
|
||||
if: matrix.npm-i != ''
|
||||
|
||||
- name: Remove non-test dependencies
|
||||
run: npm rm --silent --save-dev connect-redis
|
||||
|
||||
- name: Install Node.js dependencies
|
||||
run: npm install
|
||||
|
||||
- name: List environment
|
||||
id: list_env
|
||||
shell: bash
|
||||
run: |
|
||||
echo "node@$(node -v)"
|
||||
echo "npm@$(npm -v)"
|
||||
npm -s ls ||:
|
||||
(npm -s ls --depth=0 ||:) | awk -F'[ @]' 'NR>1 && $2 { print $2 "=" $3 }' >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
run: npm run test
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,6 +1,7 @@
|
|||
# npm
|
||||
node_modules
|
||||
package-lock.json
|
||||
npm-shrinkwrap.json
|
||||
*.log
|
||||
*.gz
|
||||
|
||||
|
|
|
|||
|
|
@ -91,8 +91,8 @@
|
|||
"scripts": {
|
||||
"lint": "eslint .",
|
||||
"test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
|
||||
"test-ci": "nyc --reporter=lcovonly --reporter=text npm test",
|
||||
"test-cov": "nyc --reporter=html --reporter=text npm test",
|
||||
"test-ci": "nyc --exclude examples --exclude test --exclude benchmarks --reporter=lcovonly --reporter=text npm test",
|
||||
"test-cov": "nyc --exclude examples --exclude test --exclude benchmarks --reporter=html --reporter=text npm test",
|
||||
"test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user