From 13a4caf0cd0f1b1f641864ab91b66fd618b6d1e5 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 9 Dec 2021 20:54:40 +0100 Subject: [PATCH] Generate nightly version based on latest npm version --- .../workflows/nightly/setNightlyVersion.js | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nightly/setNightlyVersion.js b/.github/workflows/nightly/setNightlyVersion.js index cf5d2601..42473ef8 100644 --- a/.github/workflows/nightly/setNightlyVersion.js +++ b/.github/workflows/nightly/setNightlyVersion.js @@ -6,6 +6,7 @@ //@ts-check const fs = require('fs'); +const cp = require('child_process'); if (process.argv.length !== 3) { console.error(`usage: node updateVersion.js `); @@ -13,10 +14,37 @@ if (process.argv.length !== 3) { } const packagejson = JSON.parse(fs.readFileSync(process.argv[2]).toString()); +const packageName = packagejson.name; +if (packageName !== 'monaco-editor' && packageName !== 'monaco-editor-core') { + console.error(`expected name to be 'monaco-editor' or 'monaco-editor-core'`); + process.exit(1); +} + +/** @type {string} */ +const latestVersion = (() => { + const output = cp.execSync(`npm show ${packageName} version`).toString(); + const version = output.split(/\r\n|\r|\n/g)[0]; + if (!/\d+\.\d+\.\d+/.test(version)) { + console.log('unrecognized package.json version: ' + version); + process.exit(1); + } + return version; +})(); + +if (!/^0\.(\d+)\.(\d+)$/.test(latestVersion)) { + console.error(`version ${latestVersion} does not match 0.x.y`); + process.exit(1); +} + +const devVersion = (() => { + const pieces = latestVersion.split('.'); + const minor = parseInt(pieces[1], 10); + const date = new Date(); + const yyyy = date.getUTCFullYear(); + const mm = String(date.getUTCMonth() + 1).padStart(2, '0'); + const dd = String(date.getUTCDate()).padStart(2, '0'); + return `0.${minor + 1}.0-dev.${yyyy}${mm}${dd}`; +})(); -const date = new Date(); -packagejson.version += `-dev.${date.getUTCFullYear()}${String(date.getUTCMonth() + 1).padStart( - 2, - '0' -)}${String(date.getUTCDate()).padStart(2, '0')}`; +packagejson.version = devVersion; fs.writeFileSync(process.argv[2], JSON.stringify(packagejson, null, '\t') + '\n');