Skip to content

Commit

Permalink
Merge pull request #4002 from microsoft/hediet/b/academic-walrus
Browse files Browse the repository at this point in the history
Allows for manual nightly builds.
  • Loading branch information
hediet authored Jun 5, 2023
2 parents 8bb1a4e + 74470a5 commit 5f70e6f
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 5 deletions.
16 changes: 16 additions & 0 deletions .azure-pipelines/publish-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ resources:
ref: main
endpoint: Monaco

parameters:
- name: vscodeRef
displayName: The VS Code commit id. When left empty, the main branched is used.
type: string
default: ''
- name: prereleaseVersion
displayName: The prerelease version. When left empty, dev-${today} is used.
type: string
default: ''

extends:
template: azure-pipelines/npm-package/pipeline.yml@templates
parameters:
Expand All @@ -35,6 +45,9 @@ extends:
displayName: Install NPM dependencies

- script: yarn ts-node ./scripts/ci/monaco-editor-core-prepare nightly
env:
VSCODE_REF: ${{ parameters.vscodeRef }}
PRERELEASE_VERSION: ${{ parameters.prereleaseVersion }}
retryCountOnTaskFailure: 5
displayName: Setup, Build & Test monaco-editor-core

Expand All @@ -51,6 +64,9 @@ extends:
displayName: Install NPM dependencies

- script: yarn ts-node ./scripts/ci/monaco-editor-prepare nightly
env:
VSCODE_REF: ${{ parameters.vscodeRef }}
PRERELEASE_VERSION: ${{ parameters.prereleaseVersion }}
retryCountOnTaskFailure: 5
displayName: Setup, Build & Test monaco-editor

Expand Down
6 changes: 6 additions & 0 deletions scripts/ci/env.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export function getEnv(): {
VSCODE_REF: string | undefined;
PRERELEASE_VERSION: string | undefined;
} {
return process.env as any;
}
5 changes: 3 additions & 2 deletions scripts/ci/monaco-editor-core-prepare.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { mkdir, rm } from 'fs/promises';
import { join, resolve } from 'path';
import { PackageJson, group, gitShallowClone, run, writeJsonFile, getNightlyVersion } from '../lib';
import { getEnv } from './env';

const selfPath = __dirname;
const rootPath = join(selfPath, '..', '..');
Expand All @@ -21,8 +22,8 @@ async function prepareMonacoEditorCoreReleaseStableOrNightly() {
version = monacoEditorPackageJson.version;
ref = monacoEditorPackageJson.vscodeRef;
} else if (arg === 'nightly') {
version = getNightlyVersion(monacoEditorPackageJson.version);
ref = 'main';
version = getNightlyVersion(monacoEditorPackageJson.version, getEnv().PRERELEASE_VERSION);
ref = getEnv().VSCODE_REF || 'main';
} else {
throw new Error('Invalid argument');
}
Expand Down
3 changes: 2 additions & 1 deletion scripts/ci/monaco-editor-prepare.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { readFile } from 'fs/promises';
import { join, resolve } from 'path';
import { PackageJson, getNightlyVersion, group, run, writeJsonFile, gitCommitId } from '../lib';
import { getEnv } from './env';

const selfPath = __dirname;
const rootPath = join(selfPath, '..', '..');
Expand All @@ -23,7 +24,7 @@ async function prepareMonacoEditorReleaseStableOrNightly() {
if (arg === 'stable') {
version = monacoEditorPackageJson.version;
} else if (arg === 'nightly') {
version = getNightlyVersion(monacoEditorPackageJson.version);
version = getNightlyVersion(monacoEditorPackageJson.version, getEnv().PRERELEASE_VERSION);
} else {
throw new Error('Invalid argument');
}
Expand Down
6 changes: 4 additions & 2 deletions scripts/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,16 @@ export async function writeJsonFile(filePath: string, jsonData: unknown): Promis
await writeFile(filePath, JSON.stringify(jsonData, null, '\t') + '\n');
}

export function getNightlyVersion(version: string): string {
export function getNightlyVersion(version: string, prerelease: string | undefined): 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}`;

prerelease = prerelease || `dev.${yyyy}${mm}${dd}`;
return `0.${minor + 1}.0-${prerelease}`;
}

export interface PackageJson {
Expand Down

0 comments on commit 5f70e6f

Please sign in to comment.