Skip to content

Commit fff2db5

Browse files
github-actions[bot]dblythy
authored andcommitted
feat: add MongoDB 5.1 compatibility (#7682)
1 parent 5793d09 commit fff2db5

File tree

3 files changed

+179
-359
lines changed

3 files changed

+179
-359
lines changed

.github/workflows/ci.yml

Lines changed: 99 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -1,159 +1,113 @@
11
name: ci
22
on:
33
push:
4-
branches: [release, alpha, beta, next-major, 'release-[0-9]+.x.x']
4+
branches: [ release, alpha, beta, next-major ]
55
pull_request:
66
branches:
77
- '**'
8-
paths-ignore:
9-
- '**/**.md'
108
env:
11-
NODE_VERSION: 22.4.1
9+
NODE_VERSION: 16.13.0
1210
PARSE_SERVER_TEST_TIMEOUT: 20000
13-
permissions:
14-
actions: write
1511
jobs:
16-
check-code-analysis:
17-
name: Code Analysis
18-
runs-on: ubuntu-latest
19-
permissions:
20-
actions: read
21-
contents: read
22-
security-events: write
23-
strategy:
24-
fail-fast: false
25-
matrix:
26-
language: ['javascript']
27-
steps:
28-
- name: Checkout repository
29-
uses: actions/checkout@v4
30-
- name: Initialize CodeQL
31-
uses: github/codeql-action/init@v2
32-
with:
33-
languages: ${{ matrix.language }}
34-
source-root: src
35-
- name: Perform CodeQL Analysis
36-
uses: github/codeql-action/analyze@v2
3712
check-ci:
3813
name: Node Engine Check
3914
timeout-minutes: 15
40-
runs-on: ubuntu-latest
41-
steps:
42-
- uses: actions/checkout@v4
43-
- name: Use Node.js ${{ matrix.NODE_VERSION }}
44-
uses: actions/setup-node@v4
45-
with:
46-
node-version: ${{ matrix.node-version }}
47-
- name: Install prod dependencies
48-
run: npm ci
49-
- name: Remove dev dependencies
50-
run: ./ci/uninstallDevDeps.sh @actions/core
51-
- name: CI Node Engine Check
52-
run: npm run ci:checkNodeEngine
53-
check-lint:
54-
name: Lint
55-
timeout-minutes: 15
56-
runs-on: ubuntu-latest
57-
steps:
58-
- uses: actions/checkout@v4
59-
- name: Use Node.js ${{ matrix.NODE_VERSION }}
60-
uses: actions/setup-node@v4
61-
with:
62-
node-version: ${{ matrix.node-version }}
63-
- name: Cache Node.js modules
64-
uses: actions/cache@v4
65-
with:
66-
path: ~/.npm
67-
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
68-
restore-keys: |
69-
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
70-
- name: Install dependencies
71-
run: npm ci
72-
- run: npm run lint
73-
check-definitions:
74-
name: Check Definitions
75-
timeout-minutes: 5
76-
runs-on: ubuntu-latest
15+
runs-on: ubuntu-18.04
7716
steps:
78-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@v2
7918
- name: Use Node.js ${{ matrix.NODE_VERSION }}
80-
uses: actions/setup-node@v4
19+
uses: actions/setup-node@v2
8120
with:
8221
node-version: ${{ matrix.node-version }}
8322
- name: Cache Node.js modules
84-
uses: actions/cache@v4
23+
uses: actions/cache@v2
8524
with:
8625
path: ~/.npm
8726
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
8827
restore-keys: |
8928
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
9029
- name: Install dependencies
9130
run: npm ci
92-
- name: CI Definitions Check
93-
run: npm run ci:definitionsCheck
31+
- name: CI Node Engine Check
32+
run: npm run ci:checkNodeEngine
33+
check-lint:
34+
name: Lint
35+
timeout-minutes: 15
36+
runs-on: ubuntu-18.04
37+
steps:
38+
- uses: actions/checkout@v2
39+
- name: Use Node.js ${{ matrix.NODE_VERSION }}
40+
uses: actions/setup-node@v2
41+
with:
42+
node-version: ${{ matrix.node-version }}
43+
- name: Cache Node.js modules
44+
uses: actions/cache@v2
45+
with:
46+
path: ~/.npm
47+
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
48+
restore-keys: |
49+
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
50+
- name: Install dependencies
51+
run: npm ci
52+
- run: npm run lint
9453
check-circular:
95-
name: Circular Dependencies
96-
timeout-minutes: 5
97-
runs-on: ubuntu-latest
98-
steps:
99-
- uses: actions/checkout@v4
100-
- name: Use Node.js ${{ matrix.NODE_VERSION }}
101-
uses: actions/setup-node@v4
102-
with:
103-
node-version: ${{ matrix.node-version }}
104-
- name: Cache Node.js modules
105-
uses: actions/cache@v4
106-
with:
107-
path: ~/.npm
108-
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
109-
restore-keys: |
110-
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
111-
- name: Install dependencies
112-
run: npm ci
113-
- run: npm run madge:circular
54+
name: Circular Dependencies
55+
timeout-minutes: 5
56+
runs-on: ubuntu-18.04
57+
steps:
58+
- uses: actions/checkout@v2
59+
- name: Use Node.js ${{ matrix.NODE_VERSION }}
60+
uses: actions/setup-node@v2
61+
with:
62+
node-version: ${{ matrix.node-version }}
63+
- name: Cache Node.js modules
64+
uses: actions/cache@v2
65+
with:
66+
path: ~/.npm
67+
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
68+
restore-keys: |
69+
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
70+
- name: Install dependencies
71+
run: npm ci
72+
- run: npm run madge:circular
11473
check-docker:
11574
name: Docker Build
11675
timeout-minutes: 15
117-
runs-on: ubuntu-latest
76+
runs-on: ubuntu-18.04
11877
steps:
11978
- name: Checkout repository
120-
uses: actions/checkout@v4
79+
uses: actions/checkout@v2
12180
- name: Set up QEMU
12281
id: qemu
123-
uses: docker/setup-qemu-action@v2
82+
uses: docker/setup-qemu-action@v1
12483
- name: Set up Docker Buildx
125-
uses: docker/setup-buildx-action@v2
84+
uses: docker/setup-buildx-action@v1
12685
- name: Build docker image
127-
uses: docker/build-push-action@v3
86+
uses: docker/build-push-action@v2
12887
with:
12988
context: .
130-
platforms: linux/amd64, linux/arm64/v8
89+
platforms: linux/amd64
13190
check-lock-file-version:
13291
name: NPM Lock File Version
13392
timeout-minutes: 5
134-
runs-on: ubuntu-latest
93+
runs-on: ubuntu-18.04
13594
steps:
136-
- uses: actions/checkout@v4
95+
- uses: actions/checkout@v2
13796
- name: Check NPM lock file version
13897
uses: mansona/npm-lockfile-version@v1
13998
with:
140-
version: 2
99+
version: 1
141100
check-mongo:
142101
strategy:
143102
matrix:
144103
include:
145-
- name: MongoDB 5.2, ReplicaSet, WiredTiger
146-
MONGODB_VERSION: 5.2.1
147-
MONGODB_TOPOLOGY: replicaset
148-
MONGODB_STORAGE_ENGINE: wiredTiger
149-
NODE_VERSION: 14.18.1
150104
- name: MongoDB 5.1, ReplicaSet, WiredTiger
151-
MONGODB_VERSION: 5.1.1
105+
MONGODB_VERSION: 5.1.0
152106
MONGODB_TOPOLOGY: replicaset
153107
MONGODB_STORAGE_ENGINE: wiredTiger
154108
NODE_VERSION: 14.18.1
155109
- name: MongoDB 5.0, ReplicaSet, WiredTiger
156-
MONGODB_VERSION: 5.0.6
110+
MONGODB_VERSION: 5.0.3
157111
MONGODB_TOPOLOGY: replicaset
158112
MONGODB_STORAGE_ENGINE: wiredTiger
159113
NODE_VERSION: 16.13.0
@@ -179,42 +133,43 @@ jobs:
179133
NODE_VERSION: 16.13.0
180134
- name: Redis Cache
181135
PARSE_SERVER_TEST_CACHE: redis
182-
MONGODB_VERSION: 8.0.0
136+
MONGODB_VERSION: 4.4.10
183137
MONGODB_TOPOLOGY: standalone
184-
NODE_VERSION: 22.4.1
185-
- name: Node 20
186-
MONGODB_VERSION: 8.0.0
138+
MONGODB_STORAGE_ENGINE: wiredTiger
139+
NODE_VERSION: 16.13.0
140+
- name: Node 12
141+
MONGODB_VERSION: 4.4.10
187142
MONGODB_TOPOLOGY: standalone
188-
NODE_VERSION: 20.15.1
189-
- name: Node 18
190-
MONGODB_VERSION: 8.0.0
143+
MONGODB_STORAGE_ENGINE: wiredTiger
144+
NODE_VERSION: 12.22.7
145+
- name: Node 14
146+
MONGODB_VERSION: 4.4.10
191147
MONGODB_TOPOLOGY: standalone
192-
NODE_VERSION: 18.20.4
148+
MONGODB_STORAGE_ENGINE: wiredTiger
149+
NODE_VERSION: 14.18.1
193150
fail-fast: false
194151
name: ${{ matrix.name }}
195-
timeout-minutes: 20
196-
runs-on: ubuntu-latest
152+
timeout-minutes: 15
153+
runs-on: ubuntu-18.04
197154
services:
198155
redis:
199156
image: redis
200157
ports:
201-
- 6379:6379
202-
env:
158+
- 6379:6379
159+
env:
203160
MONGODB_VERSION: ${{ matrix.MONGODB_VERSION }}
204161
MONGODB_TOPOLOGY: ${{ matrix.MONGODB_TOPOLOGY }}
205162
MONGODB_STORAGE_ENGINE: ${{ matrix.MONGODB_STORAGE_ENGINE }}
206163
PARSE_SERVER_TEST_CACHE: ${{ matrix.PARSE_SERVER_TEST_CACHE }}
207164
NODE_VERSION: ${{ matrix.NODE_VERSION }}
208165
steps:
209-
- name: Fix usage of insecure GitHub protocol
210-
run: sudo git config --system url."https://github".insteadOf "git://github"
211-
- uses: actions/checkout@v4
166+
- uses: actions/checkout@v2
212167
- name: Use Node.js ${{ matrix.NODE_VERSION }}
213-
uses: actions/setup-node@v4
168+
uses: actions/setup-node@v2
214169
with:
215170
node-version: ${{ matrix.NODE_VERSION }}
216171
- name: Cache Node.js modules
217-
uses: actions/cache@v4
172+
uses: actions/cache@v2
218173
with:
219174
path: ~/.npm
220175
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
@@ -226,47 +181,33 @@ jobs:
226181
- run: npm run coverage
227182
env:
228183
CI: true
229-
- name: Upload code coverage
230-
uses: codecov/codecov-action@v4
231-
with:
232-
# Set to `true` once codecov token bug is fixed; https://github.com/parse-community/parse-server/issues/9129
233-
fail_ci_if_error: false
234-
token: ${{ secrets.CODECOV_TOKEN }}
184+
- run: bash <(curl -s https://codecov.io/bash)
235185
check-postgres:
236186
strategy:
237187
matrix:
238188
include:
239-
- name: PostgreSQL 13, PostGIS 3.1
240-
POSTGRES_IMAGE: postgis/postgis:13-3.1
241-
NODE_VERSION: 22.4.1
189+
- name: PostgreSQL 11, PostGIS 3.0
190+
POSTGRES_IMAGE: postgis/postgis:11-3.0
191+
NODE_VERSION: 16.13.0
192+
- name: PostgreSQL 11, PostGIS 3.1
193+
POSTGRES_IMAGE: postgis/postgis:11-3.1
194+
NODE_VERSION: 16.13.0
195+
- name: PostgreSQL 11, PostGIS 3.2
196+
POSTGRES_IMAGE: postgis/postgis:11-3.2
197+
NODE_VERSION: 16.13.0
198+
- name: PostgreSQL 12, PostGIS 3.2
199+
POSTGRES_IMAGE: postgis/postgis:12-3.2
200+
NODE_VERSION: 16.13.0
242201
- name: PostgreSQL 13, PostGIS 3.2
243202
POSTGRES_IMAGE: postgis/postgis:13-3.2
244-
NODE_VERSION: 22.4.1
245-
- name: PostgreSQL 13, PostGIS 3.3
246-
POSTGRES_IMAGE: postgis/postgis:13-3.3
247-
NODE_VERSION: 22.4.1
248-
- name: PostgreSQL 13, PostGIS 3.4
249-
POSTGRES_IMAGE: postgis/postgis:13-3.4
250-
NODE_VERSION: 22.4.1
251-
- name: PostgreSQL 13, PostGIS 3.5
252-
POSTGRES_IMAGE: postgis/postgis:13-3.5
253-
NODE_VERSION: 22.4.1
254-
- name: PostgreSQL 14, PostGIS 3.5
255-
POSTGRES_IMAGE: postgis/postgis:14-3.5
256-
NODE_VERSION: 22.4.1
257-
- name: PostgreSQL 15, PostGIS 3.5
258-
POSTGRES_IMAGE: postgis/postgis:15-3.5
259-
NODE_VERSION: 22.4.1
260-
- name: PostgreSQL 16, PostGIS 3.5
261-
POSTGRES_IMAGE: postgis/postgis:16-3.5
262-
NODE_VERSION: 22.4.1
263-
- name: PostgreSQL 17, PostGIS 3.5
264-
POSTGRES_IMAGE: postgis/postgis:17-3.5
265-
NODE_VERSION: 22.4.1
203+
NODE_VERSION: 16.13.0
204+
- name: PostgreSQL 14, PostGIS 3.2
205+
POSTGRES_IMAGE: postgis/postgis:14-3.2
206+
NODE_VERSION: 16.13.0
266207
fail-fast: false
267208
name: ${{ matrix.name }}
268-
timeout-minutes: 20
269-
runs-on: ubuntu-latest
209+
timeout-minutes: 15
210+
runs-on: ubuntu-18.04
270211
services:
271212
redis:
272213
image: redis
@@ -288,13 +229,13 @@ jobs:
288229
PARSE_SERVER_TEST_DATABASE_URI: postgres://postgres:postgres@localhost:5432/parse_server_postgres_adapter_test_database
289230
NODE_VERSION: ${{ matrix.NODE_VERSION }}
290231
steps:
291-
- uses: actions/checkout@v4
232+
- uses: actions/checkout@v2
292233
- name: Use Node.js ${{ matrix.NODE_VERSION }}
293-
uses: actions/setup-node@v4
234+
uses: actions/setup-node@v2
294235
with:
295236
node-version: ${{ matrix.NODE_VERSION }}
296237
- name: Cache Node.js modules
297-
uses: actions/cache@v4
238+
uses: actions/cache@v2
298239
with:
299240
path: ~/.npm
300241
key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }}
@@ -308,13 +249,4 @@ jobs:
308249
- run: npm run coverage
309250
env:
310251
CI: true
311-
- name: Upload code coverage
312-
uses: codecov/codecov-action@v4
313-
with:
314-
fail_ci_if_error: false
315-
token: ${{ secrets.CODECOV_TOKEN }}
316-
env:
317-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
318-
concurrency:
319-
group: ${{ github.workflow }}-${{ github.ref }}
320-
cancel-in-progress: true
252+
- run: bash <(curl -s https://codecov.io/bash)

0 commit comments

Comments
 (0)