Skip to content

ci: Upgrade Node and MongoDB versions; fix CI check script for MongoDB versions #9062

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Mar 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
paths-ignore:
- '**/**.md'
env:
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
PARSE_SERVER_TEST_TIMEOUT: 20000
jobs:
check-code-analysis:
Expand Down Expand Up @@ -146,34 +146,34 @@ jobs:
matrix:
include:
- name: MongoDB 4.2, ReplicaSet
MONGODB_VERSION: 4.2.19
MONGODB_VERSION: 4.2.25
MONGODB_TOPOLOGY: replset
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: MongoDB 4.4, ReplicaSet
MONGODB_VERSION: 4.4.13
MONGODB_VERSION: 4.4.29
MONGODB_TOPOLOGY: replset
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: MongoDB 5, ReplicaSet
MONGODB_VERSION: 5.3.2
MONGODB_VERSION: 5.0.26
MONGODB_TOPOLOGY: replset
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: MongoDB 6, ReplicaSet
MONGODB_VERSION: 6.0.2
MONGODB_VERSION: 6.0.14
MONGODB_TOPOLOGY: replset
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: MongoDB 7, ReplicaSet
MONGODB_VERSION: 7.0.1
MONGODB_VERSION: 7.0.7
MONGODB_TOPOLOGY: replset
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: Redis Cache
PARSE_SERVER_TEST_CACHE: redis
MONGODB_VERSION: 4.4.13
MONGODB_VERSION: 7.0.7
MONGODB_TOPOLOGY: standalone
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: Node 18
MONGODB_VERSION: 4.4.13
MONGODB_VERSION: 7.0.7
MONGODB_TOPOLOGY: standalone
NODE_VERSION: 18.19.1
NODE_VERSION: 18.20.0
fail-fast: false
name: ${{ matrix.name }}
timeout-minutes: 15
Expand Down Expand Up @@ -217,25 +217,25 @@ jobs:
include:
- name: PostgreSQL 13, PostGIS 3.1
POSTGRES_IMAGE: postgis/postgis:13-3.1
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: PostgreSQL 13, PostGIS 3.2
POSTGRES_IMAGE: postgis/postgis:13-3.2
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: PostgreSQL 13, PostGIS 3.3
POSTGRES_IMAGE: postgis/postgis:13-3.3
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: PostgreSQL 13, PostGIS 3.4
POSTGRES_IMAGE: postgis/postgis:13-3.4
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: PostgreSQL 14, PostGIS 3.4
POSTGRES_IMAGE: postgis/postgis:14-3.4
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: PostgreSQL 15, PostGIS 3.4
POSTGRES_IMAGE: postgis/postgis:15-3.4
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
- name: PostgreSQL 16, PostGIS 3.4
POSTGRES_IMAGE: postgis/postgis:15-3.4
NODE_VERSION: 20.11.1
NODE_VERSION: 20.12.0
fail-fast: false
name: ${{ matrix.name }}
timeout-minutes: 15
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release-automated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: 18.19.1
node-version: 18.20.0
registry-url: https://registry.npmjs.org/
- name: Cache Node.js modules
uses: actions/cache@v4
Expand Down Expand Up @@ -93,7 +93,7 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18.19.1
node-version: 18.20.0
- name: Cache Node.js modules
uses: actions/cache@v4
with:
Expand Down
17 changes: 8 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
[![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)

[![Node Version](https://img.shields.io/badge/nodejs-18,_20-green.svg?logo=node.js&style=flat)](https://nodejs.org)
[![MongoDB Version](https://img.shields.io/badge/mongodb-4.0,_4.2,_4.4,_5,_6-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
[![MongoDB Version](https://img.shields.io/badge/mongodb-4.2,_4.4,_5,_6,_7-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
[![Postgres Version](https://img.shields.io/badge/postgresql-13,_14,_15,_16-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)

[![npm latest version](https://img.shields.io/npm/v/parse-server/latest.svg)](https://www.npmjs.com/package/parse-server)
Expand Down Expand Up @@ -129,21 +129,20 @@ Parse Server is continuously tested with the most recent releases of Node.js to

| Version | Latest Version | End-of-Life | Compatible |
|------------|----------------|-------------|------------|
| Node.js 18 | 18.19.1 | April 2025 | ✅ Yes |
| Node.js 20 | 20.11.1 | April 2026 | ✅ Yes |
| Node.js 18 | 18.20.0 | April 2025 | ✅ Yes |
| Node.js 20 | 20.12.0 | April 2026 | ✅ Yes |

#### MongoDB

Parse Server is continuously tested with the most recent releases of MongoDB to ensure compatibility. We follow the [MongoDB support schedule](https://www.mongodb.com/support-policy) and [MongoDB lifecycle schedule](https://www.mongodb.com/support-policy/lifecycles) and only test against versions that are officially supported and have not reached their end-of-life date. We consider the end-of-life date of a MongoDB "rapid release" to be the same as its major version release.

| Version | Latest Version | End-of-Life | Compatible |
| ----------- | -------------- | ------------- | ---------- |
| MongoDB 4.0 | 4.0.28 | April 2022 | ✅ Yes |
| MongoDB 4.2 | 4.2.19 | April 2023 | ✅ Yes |
| MongoDB 4.4 | 4.4.13 | February 2024 | ✅ Yes |
| MongoDB 5 | 5.3.2 | October 2024 | ✅ Yes |
| MongoDB 6 | 6.0.2 | July 2025 | ✅ Yes |
| MongoDB 7 | 7.0.1 | TDB | ✅ Yes |
| MongoDB 4.2 | 4.2.25 | April 2023 | ✅ Yes |
| MongoDB 4.4 | 4.4.29 | February 2024 | ✅ Yes |
| MongoDB 5 | 5.0.26 | October 2024 | ✅ Yes |
| MongoDB 6 | 6.0.14 | July 2025 | ✅ Yes |
| MongoDB 7 | 7.0.7 | TDB | ✅ Yes |

#### PostgreSQL

Expand Down
17 changes: 12 additions & 5 deletions ci/ciCheck.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,32 @@ async function check() {
* Check the MongoDB versions used in test environments.
*/
async function checkMongoDbVersions() {
const latestStableVersion = await new Promise((resolve, reject) => {
exec('m --latest', (error, stdout) => {
let latestStableVersions = await new Promise((resolve, reject) => {
exec('m ls', (error, stdout) => {
if (error) {
reject(error);
return;
}
resolve(stdout.trim());
});
});
latestStableVersions = latestStableVersions.split('\n').map(version => version.trim());

await new CiVersionCheck({
packageName: 'MongoDB',
packageSupportUrl: 'https://www.mongodb.com/support-policy',
yamlFilePath: './.github/workflows/ci.yml',
ciEnvironmentsKeyPath: 'jobs.check-mongo.strategy.matrix.include',
ciVersionKey: 'MONGODB_VERSION',
releasedVersions: [latestStableVersion],
latestComponent: CiVersionCheck.versionComponents.major,
ignoreReleasedVersions: [],
releasedVersions: latestStableVersions,
latestComponent: CiVersionCheck.versionComponents.patch,
ignoreReleasedVersions: [
'<4.2.0', // These versions have reached their end-of-life support date
'>=4.3.0 <5.0.0', // Unsupported rapid release versions
'>=5.1.0 <6.0.0', // Unsupported rapid release versions
'>=6.1.0 <7.0.0', // Unsupported rapid release versions
'>=7.1.0 <8.0.0', // Unsupported rapid release versions
],
}).check();
}

Expand Down