Adds nightly release

This commit is contained in:
Henning Dieterichs 2022-11-16 13:39:25 +01:00
parent 1dc513ee38
commit 1160858c06
No known key found for this signature in database
GPG key ID: 771381EFFDB9EC06
5 changed files with 103 additions and 22 deletions

View file

@ -1,6 +1,6 @@
import { mkdir, rm } from 'fs/promises';
import { join, resolve } from 'path';
import { group, gitShallowClone, run, writeJsonFile } from '../lib';
import { group, gitShallowClone, run, writeJsonFile, getNightlyVersion } from '../lib';
const selfPath = __dirname;
const rootPath = join(selfPath, '..', '..');
@ -8,15 +8,26 @@ const dependenciesPath = join(rootPath, 'dependencies');
const vscodePath = resolve(dependenciesPath, 'vscode');
const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json');
async function prepareMonacoEditorCoreReleaseStable() {
async function prepareMonacoEditorCoreReleaseStableOrNightly() {
const monacoEditorPackageJson = require(monacoEditorPackageJsonPath) as {
version: string;
vscodeRef: string;
};
await prepareMonacoEditorCoreRelease(
monacoEditorPackageJson.version,
monacoEditorPackageJson.vscodeRef
);
let version: string;
let ref: string;
const arg = process.argv[2];
if (arg === 'stable') {
version = monacoEditorPackageJson.version;
ref = monacoEditorPackageJson.vscodeRef;
} else if (arg === 'nightly') {
version = getNightlyVersion(monacoEditorPackageJson.version);
ref = 'main';
} else {
throw new Error('Invalid argument');
}
await prepareMonacoEditorCoreRelease(version, ref);
// npm package is now in dependencies/vscode/out-monaco-editor-core, ready to be published
}
@ -53,4 +64,4 @@ async function prepareMonacoEditorCoreRelease(version: string, vscodeRef: string
});
}
prepareMonacoEditorCoreReleaseStable();
prepareMonacoEditorCoreReleaseStableOrNightly();

View file

@ -1,16 +1,28 @@
import { readFile } from 'fs/promises';
import { join, resolve } from 'path';
import { group, run, writeJsonFile } from '../lib';
import { getNightlyVersion, group, run, writeJsonFile } from '../lib';
const selfPath = __dirname;
const rootPath = join(selfPath, '..', '..');
const monacoEditorPackageJsonPath = resolve(rootPath, 'package.json');
async function prepareMonacoEditorReleaseStable() {
async function prepareMonacoEditorReleaseStableOrNightly() {
const monacoEditorPackageJson = JSON.parse(
await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' })
) as { version: string };
await prepareMonacoEditorRelease(monacoEditorPackageJson.version);
let version: string;
const arg = process.argv[2];
if (arg === 'stable') {
version = monacoEditorPackageJson.version;
} else if (arg === 'nightly') {
version = getNightlyVersion(monacoEditorPackageJson.version);
} else {
throw new Error('Invalid argument');
}
await prepareMonacoEditorRelease(version);
// npm package is now in ./release, ready to be published
}
@ -35,4 +47,4 @@ async function prepareMonacoEditorRelease(version: string) {
});
}
prepareMonacoEditorReleaseStable();
prepareMonacoEditorReleaseStableOrNightly();

View file

@ -43,3 +43,13 @@ export async function group(name: string, body: () => Promise<void>): Promise<vo
export async function writeJsonFile(filePath: string, jsonData: unknown): Promise<void> {
await writeFile(filePath, JSON.stringify(jsonData, null, '\t') + '\n');
}
export function getNightlyVersion(version: string): string {
const pieces = version.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}`;
}