build: support Node.js 13.x
[express.git] / appveyor.yml
blobeacac34fe186a751bc8e8404e4af5efe80045db3
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 cache:
19   - node_modules
20 install:
21   # Install Node.js
22   - ps: >-
23       try { Install-Product node $env:nodejs_version -ErrorAction Stop }
24       catch { Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) }
25   # Configure npm
26   - ps: |
27       npm config set loglevel error
28       npm config set shrinkwrap false
29   # Remove all non-test dependencies
30   - ps: |
31       # Remove example dependencies
32       npm rm --silent --save-dev connect-redis
33       # Remove lint dependencies
34       cmd.exe /c "node -pe `"Object.keys(require('./package').devDependencies).join('\n')`"" | `
35         sls "^eslint(-|$)" | `
36         %{ npm rm --silent --save-dev $_ }
37   # Setup Node.js version-specific dependencies
38   - ps: |
39       # mocha for testing
40       # - use 3.x for Node.js < 4
41       # - use 5.x for Node.js < 6
42       # - use 6.x for Node.js < 8
43       # - use 7.x for Node.js < 10
44       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
45         npm install --silent --save-dev mocha@3.5.3
46       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 6) {
47         npm install --silent --save-dev mocha@5.2.0
48       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 8) {
49         npm install --silent --save-dev mocha@6.2.2
50       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 10) {
51         npm install --silent --save-dev mocha@7.2.0
52       }
53   - ps: |
54       # supertest for http calls
55       # - use 2.0.0 for Node.js < 4
56       # - use 3.4.2 for Node.js < 6
57       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
58         npm install --silent --save-dev supertest@2.0.0
59       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 6) {
60         npm install --silent --save-dev supertest@3.4.2
61       }
62   # Update Node.js modules
63   - ps: |
64       # Prune & rebuild node_modules
65       if (Test-Path -Path node_modules) {
66         npm prune
67         npm rebuild
68       }
69   # Install Node.js modules
70   - npm install
71 build: off
72 test_script:
73   # Output version data
74   - ps: |
75       node --version
76       npm --version
77   # Run test script
78   - npm run test-ci
79 version: "{build}"