docs: update TC governance rules
[express.git] / appveyor.yml
blob44af842e8584115b713c48826c3065696f73365d
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.20"
19     - nodejs_version: "15.14"
20     - nodejs_version: "16.20"
21     - nodejs_version: "17.9"
22     - nodejs_version: "18.17"
23     - nodejs_version: "19.9"
24 cache:
25   - node_modules
26 install:
27   # Install Node.js
28   - ps: >-
29       try { Install-Product node $env:nodejs_version -ErrorAction Stop }
30       catch { Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) x64 }
31   # Configure npm
32   - ps: |
33       npm config set loglevel error
34       if ((npm config get package-lock) -eq "true") {
35         npm config set package-lock false
36       } else {
37         npm config set shrinkwrap false
38       }
39   # Remove all non-test dependencies
40   - ps: |
41       # Remove example dependencies
42       npm rm --silent --save-dev connect-redis
43       # Remove lint dependencies
44       cmd.exe /c "node -pe `"Object.keys(require('./package').devDependencies).join('\n')`"" | `
45         sls "^eslint(-|$)" | `
46         %{ npm rm --silent --save-dev $_ }
47   # Setup Node.js version-specific dependencies
48   - ps: |
49       # mocha for testing
50       # - use 3.x for Node.js < 4
51       # - use 5.x for Node.js < 6
52       # - use 6.x for Node.js < 8
53       # - use 7.x for Node.js < 10
54       # - use 8.x for Node.js < 12
55       # - use 9.x for Node.js < 14
56       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
57         npm install --silent --save-dev mocha@3.5.3
58       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 6) {
59         npm install --silent --save-dev mocha@5.2.0
60       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 8) {
61         npm install --silent --save-dev mocha@6.2.2
62       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 10) {
63         npm install --silent --save-dev mocha@7.2.0
64       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 12) {
65         npm install --silent --save-dev mocha@8.4.0
66       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 14) {
67         npm install --silent --save-dev mocha@9.2.2
68       }
69   - ps: |
70       # nyc for test coverage
71       # - use 10.3.2 for Node.js < 4
72       # - use 11.9.0 for Node.js < 6
73       # - use 14.1.1 for Node.js < 10
74       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
75         npm install --silent --save-dev nyc@10.3.2
76       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 6) {
77         npm install --silent --save-dev nyc@11.9.0
78       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 10) {
79         npm install --silent --save-dev nyc@14.1.1
80       }
81   - ps: |
82       # supertest for http calls
83       # - use 2.0.0 for Node.js < 4
84       # - use 3.4.2 for Node.js < 7
85       # - use 6.1.6 for Node.js < 8
86       if ([int]$env:nodejs_version.split(".")[0] -lt 4) {
87         npm install --silent --save-dev supertest@2.0.0
88       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 7) {
89         npm install --silent --save-dev supertest@3.4.2
90       } elseif ([int]$env:nodejs_version.split(".")[0] -lt 8) {
91         npm install --silent --save-dev supertest@6.1.6
92       }
93   # Update Node.js modules
94   - ps: |
95       # Prune & rebuild node_modules
96       if (Test-Path -Path node_modules) {
97         npm prune
98         npm rebuild
99       }
100   # Install Node.js modules
101   - npm install
102 build: off
103 test_script:
104   # Output version data
105   - ps: |
106       node --version
107       npm --version
108   # Run test script
109   - npm run test-ci
110 version: "{build}"