build: Node.js@10.24
[express.git] / .github / workflows / ci.yml
blob56cf6edacd567dc73df3cbfc76a0b4eab9af74d1
1 name: ci
3 on:
4 - pull_request
5 - push
7 jobs:
8   test:
9     runs-on: ubuntu-latest
10     strategy:
11       fail-fast: false
12       matrix:
13         name:
14         - Node.js 0.10
15         - Node.js 0.12
16         - io.js 1.x
17         - io.js 2.x
18         - io.js 3.x
19         - Node.js 4.x
20         - Node.js 5.x
21         - Node.js 6.x
22         - Node.js 7.x
23         - Node.js 8.x
24         - Node.js 9.x
25         - Node.js 10.x
26         - Node.js 11.x
27         - Node.js 12.x
29         include:
30         - name: Node.js 0.10
31           node-version: "0.10"
32           npm-i: mocha@3.5.3 supertest@2.0.0
34         - name: Node.js 0.12
35           node-version: "0.12"
36           npm-i: mocha@3.5.3 supertest@2.0.0
38         - name: io.js 1.x
39           node-version: "1.8"
40           npm-i: mocha@3.5.3 supertest@2.0.0
42         - name: io.js 2.x
43           node-version: "2.5"
44           npm-i: mocha@3.5.3 supertest@2.0.0
46         - name: io.js 3.x
47           node-version: "3.3"
48           npm-i: mocha@3.5.3 supertest@2.0.0
50         - name: Node.js 4.x
51           node-version: "4.9"
52           npm-i: mocha@5.2.0 supertest@3.4.2
54         - name: Node.js 5.x
55           node-version: "5.12"
56           npm-i: mocha@5.2.0 supertest@3.4.2
58         - name: Node.js 6.x
59           node-version: "6.17"
60           npm-i: mocha@6.2.2
62         - name: Node.js 7.x
63           node-version: "7.10"
64           npm-i: mocha@6.2.2
66         - name: Node.js 8.x
67           node-version: "8.17"
68           npm-i: mocha@7.2.0
70         - name: Node.js 9.x
71           node-version: "9.11"
72           npm-i: mocha@7.2.0
74         - name: Node.js 10.x
75           node-version: "10.24"
77         - name: Node.js 11.x
78           node-version: "11.15"
80         - name: Node.js 12.x
81           node-version: "12.18"
83     steps:
84     - uses: actions/checkout@v2
86     - name: Install Node.js ${{ matrix.node-version }}
87       shell: bash -eo pipefail -l {0}
88       run: |
89         nvm install --default ${{ matrix.node-version }}
90         dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH"
92     - name: Configure npm
93       run: |
94         npm config set loglevel error
95         npm config set shrinkwrap false
97     - name: Install npm module(s) ${{ matrix.npm-i }}
98       run: npm install --save-dev ${{ matrix.npm-i }}
99       if: matrix.npm-i != ''
101     - name: Remove non-test dependencies
102       run: npm rm --silent --save-dev connect-redis
104     - name: Install Node.js dependencies
105       run: npm install
107     - name: List environment
108       id: list_env
109       shell: bash
110       run: |
111         echo "node@$(node -v)"
112         echo "npm@$(npm -v)"
113         npm -s ls ||:
115     - name: Run tests
116       shell: bash
117       run: npm run test-ci
119     - name: Lint code
120       run: npm run lint
122     - name: Collect code coverage
123       uses: coverallsapp/github-action@master
124       with:
125         github-token: ${{ secrets.GITHUB_TOKEN }}
126         flag-name: run-${{ matrix.test_number }}
127         parallel: true
129   coverage:
130     needs: test
131     runs-on: ubuntu-latest
132     steps:
133     - name: Upload code coverage
134       uses: coverallsapp/github-action@master
135       with:
136         github-token: ${{ secrets.github_token }}
137         parallel-finished: true