-
-
Notifications
You must be signed in to change notification settings - Fork 16.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace Appveyor windows testing with GHA #5599
Changes from all commits
42d1509
ccb9c89
4d7a238
2bd8990
48c1124
6751ab3
fdb5e6f
763e9ec
c0abdab
44fbd93
8f6c183
4fd8df3
dd1651d
c5464b6
fa68657
f53fc7b
752dfcc
a2f368a
67c8a54
e10aa7c
67fb980
6ebb774
b7034f6
57f16eb
1dc71e6
75c9a3b
449c62f
70a0192
fbc8e46
af7559b
8cb2adf
b4e8cb5
ab17be3
a9555f9
7d9ab0a
508d5ac
3dad18a
15f2860
5eede5f
c8a9ffd
a9b0967
c49ea96
7f92a11
c394f73
c5b333f
f4a0909
c36797b
814b26c
611556b
0c536b2
e34a3e6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 | ||
|
||
- name: Node.js 0.12 | ||
node-version: "0.12" | ||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0 | ||
|
||
- name: io.js 1.x | ||
node-version: "1" | ||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0 | ||
|
||
- name: io.js 2.x | ||
node-version: "2" | ||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0 | ||
|
||
- name: io.js 3.x | ||
node-version: "3" | ||
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0 | ||
|
||
- name: Node.js 4.x | ||
node-version: "4" | ||
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2 | ||
|
||
- name: Node.js 5.x | ||
node-version: "5" | ||
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2 | ||
|
||
- name: Node.js 6.x | ||
node-version: "6" | ||
npm-i: mocha@6.2.2 nyc@14.1.1 supertest@3.4.2 | ||
|
||
- name: Node.js 7.x | ||
node-version: "7" | ||
npm-i: mocha@6.2.2 nyc@14.1.1 supertest@6.1.6 | ||
|
||
- name: Node.js 8.x | ||
node-version: "8" | ||
npm-i: mocha@7.2.0 nyc@14.1.1 | ||
- 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 9.x | ||
node-version: "9" | ||
npm-i: mocha@7.2.0 nyc@14.1.1 | ||
- 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: Node.js 10.x | ||
node-version: "10" | ||
npm-i: mocha@8.4.0 | ||
- node-version: "4" | ||
npm-i: "mocha@5.2.0 nyc@11.9.0 supertest@3.4.2" | ||
|
||
- name: Node.js 11.x | ||
node-version: "11" | ||
npm-i: mocha@8.4.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: Node.js 12.x | ||
node-version: "12" | ||
npm-i: mocha@9.2.2 | ||
- node-version: "6" | ||
npm-i: "mocha@6.2.2 nyc@14.1.1 supertest@3.4.2" | ||
|
||
- name: Node.js 13.x | ||
node-version: "13" | ||
npm-i: mocha@9.2.2 | ||
- node-version: "7" | ||
npm-i: "mocha@6.2.2 nyc@14.1.1 supertest@6.1.6" | ||
|
||
- name: Node.js 14.x | ||
node-version: "14" | ||
- node-version: "8" | ||
npm-i: "mocha@7.2.0 nyc@14.1.1" | ||
|
||
- name: Node.js 15.x | ||
node-version: "15" | ||
- node-version: "9" | ||
npm-i: "mocha@7.2.0 nyc@14.1.1" | ||
|
||
- name: Node.js 16.x | ||
node-version: "16" | ||
- node-version: "10" | ||
npm-i: "mocha@8.4.0" | ||
|
||
- name: Node.js 17.x | ||
node-version: "17" | ||
- node-version: "11" | ||
npm-i: "mocha@8.4.0" | ||
|
||
- name: Node.js 18.x | ||
node-version: "18" | ||
- node-version: "12" | ||
npm-i: "mocha@9.2.2" | ||
|
||
- 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 | ||
|
||
- 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: 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: 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 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-ci | ||
cp coverage/lcov.info "coverage/${{ matrix.name }}.lcov" | ||
|
||
- name: Lint code | ||
if: steps.list_env.outputs.eslint != '' | ||
run: npm run lint | ||
|
||
- name: Collect code coverage | ||
run: | | ||
mv ./coverage "./${{ matrix.name }}" | ||
mkdir ./coverage | ||
mv "./${{ matrix.name }}" "./coverage/${{ matrix.name }}" | ||
|
||
- name: Upload code coverage | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: coverage | ||
path: ./coverage | ||
retention-days: 1 | ||
- uses: actions/checkout@v4 | ||
with: | ||
persist-credentials: false | ||
|
||
- name: Setup Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
|
||
- name: Npm version fixes | ||
if: ${{matrix.npm-version != ''}} | ||
run: npm install -g ${{ matrix.npm-version }} | ||
|
||
- name: Configure npm loglevel | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. dropped configuring npm to ignore package-lock and shrinkwrap We have .npmrc set to package-lock: false, and this same PR updates gitignore to ignore shrinkwrap There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there a reason not to also move this config into the |
||
run: | | ||
npm config set loglevel error | ||
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: Output Node and NPM versions | ||
run: | | ||
echo "Node.js version: $(node -v)" | ||
echo "NPM version: $(npm -v)" | ||
|
||
- 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.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 | ||
|
||
coverage: | ||
needs: test | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
name: iojs-ci | ||
jonchurch marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
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 | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
# npm | ||
node_modules | ||
package-lock.json | ||
npm-shrinkwrap.json | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note that Im adding shrinkwrap to gitignore, we don't generate it, but we did go out of our way in the CI before to configure node to ignore it Comfortable removing that config part, and just making sure we never commit it |
||
*.log | ||
*.gz | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the comments in the matrix include section to understand why I added a step to install npm for a few versions