examples: use http-errors to create errors
[express.git] / appveyor.yml
blob93ea2c816162fdb8f91e91eee08c13a5156256e7
1 environment:
2   matrix:
3     - nodejs_version: "0.10"
4     - nodejs_version: "0.12"
5     - nodejs_version: "1.8"
6     - nodejs_version: "2.5"
7     - nodejs_version: "3.3"
8     - nodejs_version: "4.9"
9     - nodejs_version: "5.12"
10     - nodejs_version: "6.17"
11     - nodejs_version: "7.10"
12     - nodejs_version: "8.17"
13     - nodejs_version: "9.11"
14     - nodejs_version: "10.24"
15     - nodejs_version: "11.15"
16     - nodejs_version: "12.22"
17     - nodejs_version: "13.14"
18     - nodejs_version: "14.19"
19     - nodejs_version: "15.14"
20     - nodejs_version: "16.14"
21 cache:
22   - node_modules
23 install:
24   # Install Node.js
25   - ps: >-
26       try { Install-Product node $env:nodejs_version -ErrorAction Stop }
27       catch { Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) }
28   # Configure npm
29   - ps: |
30       npm config set loglevel error
31       npm config set shrinkwrap false
32   # Remove all non-test dependencies
33   - ps: |
34       # Remove example dependencies
35       npm rm --silent --save-dev connect-redis
36       # Remove lint dependencies
37       cmd.exe /c "node -pe `"Object.keys(require('./package').devDependencies).join('\n')`"" | `
38         sls "^eslint(-|$)" | `
39         %{ npm rm --silent --save-dev $_ }
40   # Setup Node.js version-specific dependencies
41   - ps: |
42       # mocha for testing
43       # - use 3.x for Node.js < 4
44       # - use 5.x for Node.js < 6
45       # - use 6.x for Node.js < 8
46       # - use 7.x for Node.js < 10
47       # - use 8.x for Node.js < 12
48       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
49         npm install --silent --save-dev mocha@3.5.3
50       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 6) {
51         npm install --silent --save-dev mocha@5.2.0
52       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 8) {
53         npm install --silent --save-dev mocha@6.2.2
54       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 10) {
55         npm install --silent --save-dev mocha@7.2.0
56       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 12) {
57         npm install --silent --save-dev mocha@8.4.0
58       }
59   - ps: |
60       # nyc for test coverage
61       # - use 10.3.2 for Node.js < 4
62       # - use 11.9.0 for Node.js < 6
63       # - use 14.1.1 for Node.js < 8
64       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
65         npm install --silent --save-dev nyc@10.3.2
66       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 6) {
67         npm install --silent --save-dev nyc@11.9.0
68       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 8) {
69         npm install --silent --save-dev nyc@14.1.1
70       }
71   - ps: |
72       # supertest for http calls
73       # - use 2.0.0 for Node.js < 4
74       # - use 3.4.2 for Node.js < 7
75       # - use 6.1.6 for Node.js < 8
76       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
77         npm install --silent --save-dev supertest@2.0.0
78       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 7) {
79         npm install --silent --save-dev supertest@3.4.2
80       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 8) {
81         npm install --silent --save-dev supertest@6.1.6
82       }
83   # Update Node.js modules
84   - ps: |
85       # Prune & rebuild node_modules
86       if (Test-Path -Path node_modules) {
87         npm prune
88         npm rebuild
89       }
90   # Install Node.js modules
91   - npm install
92 build: off
93 test_script:
94   # Output version data
95   - ps: |
96       node --version
97       npm --version
98   # Run test script
99   - npm run test-ci
100 version: "{build}"