mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
import { MongoClient, ServerApiVersion } from 'mongodb'
|
|
|
|
// type ReleaseRecord = {
|
|
// version: string;
|
|
// installable: boolean;
|
|
// releaseDate: string;
|
|
// s3Key: string;
|
|
// s3Bucket: string;
|
|
// downloadUrl: string;
|
|
// };
|
|
|
|
// type FrameworkReleaseMetadata = {
|
|
// metadataVersion: string;
|
|
// blockedVersions: string[];
|
|
// supportedVersions: string[];
|
|
// };
|
|
|
|
const mongoUri = process.env.RELEASES_MONGO_URI
|
|
|
|
if (mongoUri === undefined || mongoUri === '') {
|
|
throw new Error('Missing required environment variable: RELEASES_MONGO_URI')
|
|
}
|
|
|
|
const mongo = new MongoClient(mongoUri, {
|
|
serverApi: { strict: false, version: ServerApiVersion.v1 },
|
|
})
|
|
|
|
await mongo.connect()
|
|
|
|
const releaseMetadataCollection = mongo.db('db').collection('release-metadata')
|
|
const releaseCollection = mongo.db('db').collection('releases')
|
|
|
|
const metadata = await releaseMetadataCollection.findOne({
|
|
metadataVersion: '1',
|
|
})
|
|
|
|
if (metadata === null) {
|
|
throw new Error('Release metadata not found')
|
|
}
|
|
|
|
const version = process.argv[2]
|
|
await releaseCollection.insertOne({
|
|
version,
|
|
installable: true,
|
|
releaseDate: new Date().toISOString(),
|
|
s3Key: `serverless-v${version}.tgz`,
|
|
s3Bucket: `install.serverless.com`,
|
|
downloadUrl: `https://install.serverless.com/archives/serverless-${version}.tgz`,
|
|
})
|
|
|
|
await releaseMetadataCollection.updateOne(
|
|
{ _id: metadata._id },
|
|
{ $push: { supportedVersions: process.argv[2] } },
|
|
)
|
|
|
|
await mongo.close()
|