Skip to content
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

Draft
wants to merge 27 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
0c5d41e
add windows-latest to the ci matrix
jonchurch Apr 14, 2024
0934608
move os into matrix, set runs-on via matrix
jonchurch Apr 14, 2024
1423418
add nvm for windows
jonchurch Apr 14, 2024
170a77c
fixup! move os into matrix, set runs-on via matrix
jonchurch Apr 14, 2024
5e414de
create cross platform ci, drop linting and code cov for now
jonchurch Apr 20, 2024
9bdfe54
fixup! create cross platform ci, drop linting and code cov for now
jonchurch Apr 20, 2024
f56d46e
restore ci.yml to upstream
jonchurch Apr 20, 2024
df86a90
fixup! create cross platform ci, drop linting and code cov for now
jonchurch Apr 20, 2024
3ac7ab1
fixup! create cross platform ci, drop linting and code cov for now
jonchurch Apr 20, 2024
6f672a5
add step to disable shrinkwrap/lockfile
jonchurch Apr 20, 2024
e992bf9
lets go red to make sure things are working
jonchurch Apr 20, 2024
92a53ea
Revert "lets go red to make sure things are working"
jonchurch Apr 20, 2024
19b1449
add 21.7.1 to see if we fail on query there
jonchurch Apr 20, 2024
f2bc491
Revert "add 21.7.1 to see if we fail on query there"
jonchurch Apr 20, 2024
1dc868c
add lint job to experimental ci
jonchurch Apr 20, 2024
be56112
name the test job Run tests
jonchurch Apr 20, 2024
0eca91d
add v5 npm install fix
jonchurch Apr 29, 2024
297bfac
add code coverage upload step
jonchurch Apr 29, 2024
6c17584
update coverage excludes
jonchurch Apr 29, 2024
0648259
fixup! add code coverage upload step
jonchurch Apr 29, 2024
721168f
fixup! add v5 npm install fix
jonchurch Apr 29, 2024
dcf521b
fixup! add code coverage upload step
jonchurch Apr 29, 2024
737dd5e
update to setup-node v4
jonchurch Apr 29, 2024
1909b3c
see if setup node will just use io.js for 1-3.x
jonchurch Apr 29, 2024
cf87913
add 22.x to matrix
jonchurch Apr 29, 2024
03d1b75
Revert "see if setup node will just use io.js for 1-3.x"
jonchurch Apr 29, 2024
bf249d0
collect coverage on every version, merge, upload to coveralls
jonchurch May 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
207 changes: 207 additions & 0 deletions .github/workflows/experimental.ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
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"
- "22.x"
# Use supported versions of our testing tools under older versions of Node
include:
- node-version: "0.10.x"
npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
- node-version: "0.12.x"
npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
- node-version: "4.x"
npm-i: "mocha@5.2.0 nyc@11.9.0 supertest@3.4.2"
- node-version: "5.x"
npm-i: "mocha@5.2.0 nyc@11.9.0 supertest@3.4.2"
- node-version: "6.x"
npm-i: "mocha@6.2.2 nyc@14.1.1 supertest@3.4.2"
- node-version: "7.x"
npm-i: "mocha@6.2.2 nyc@14.1.1 supertest@6.1.6"
- node-version: "8.x"
npm-i: "mocha@7.2.0 nyc@14.1.1"
- node-version: "9.x"
npm-i: "mocha@7.2.0 nyc@14.1.1"
- node-version: "10.x"
npm-i: "mocha@8.4.0"
- node-version: "11.x"
npm-i: "mocha@8.4.0"
- node-version: "12.x"
npm-i: "mocha@9.2.2"
- node-version: "13.x"
npm-i: "mocha@9.2.2"

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@v4
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 npm@3.10.10

- 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: 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.name }}.lcov"

- 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

coverage:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install lcov
shell: bash
run: sudo apt-get -y install lcov

- name: Collect coverage reports
uses: actions/download-artifact@v3
with:
name: coverage
path: ./coverage

- name: Merge coverage reports
shell: bash
run: find ./coverage -name lcov.info -exec printf '-a %q\n' {} \; | xargs lcov -o ./coverage/lcov.info

- name: Upload coverage report
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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/"
}
}