|
@@ -1,103 +0,0 @@
|
|
|
-/*---------------------------------------------------------------------------------------------
|
|
|
- * Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
- * Licensed under the MIT License. See License.txt in the project root for license information.
|
|
|
- *--------------------------------------------------------------------------------------------*/
|
|
|
-
|
|
|
-//@ts-check
|
|
|
-
|
|
|
-const fs = require('fs');
|
|
|
-const cp = require('child_process');
|
|
|
-const packageJson = require('../../../package.json');
|
|
|
-
|
|
|
-if (process.argv.length !== 4) {
|
|
|
- console.error(`usage: node computeState.js <"workflow_dispatch"|"schedule"> <"true"|"false">`);
|
|
|
- process.exit(1);
|
|
|
-}
|
|
|
-
|
|
|
-const EVENT_NAME = /** @type {'workflow_dispatch'|'schedule'} */ (process.argv[2]);
|
|
|
-const STR_NIGHTLY = /** @type {'true'|'false'|''} */ (process.argv[3]);
|
|
|
-
|
|
|
-if (!/^((workflow_dispatch)|(schedule))$/.test(EVENT_NAME)) {
|
|
|
- console.error(`usage: node computeState.js <"workflow_dispatch"|"schedule"> <"true"|"false">`);
|
|
|
- process.exit(2);
|
|
|
-}
|
|
|
-
|
|
|
-if (!/^((true)|(false)|())$/.test(STR_NIGHTLY)) {
|
|
|
- console.error(`usage: node computeState.js <"workflow_dispatch"|"schedule"> <"true"|"false">`);
|
|
|
- process.exit(3);
|
|
|
-}
|
|
|
-
|
|
|
-const NIGHTLY = EVENT_NAME === 'schedule' || STR_NIGHTLY === 'true';
|
|
|
-
|
|
|
-const distTag = NIGHTLY ? 'next' : 'latest';
|
|
|
-
|
|
|
-const latestMonacoEditorVersion = npmGetLatestVersion('monaco-editor');
|
|
|
-const version = (() => {
|
|
|
- if (NIGHTLY) {
|
|
|
- const pieces = latestMonacoEditorVersion.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}`;
|
|
|
- } else {
|
|
|
- return packageJson.version;
|
|
|
- }
|
|
|
-})();
|
|
|
-
|
|
|
-const vscodeBranch = (() => {
|
|
|
- if (NIGHTLY) {
|
|
|
- return 'main';
|
|
|
- } else {
|
|
|
- return packageJson.vscode;
|
|
|
- }
|
|
|
-})();
|
|
|
-
|
|
|
-const skipMonacoEditorCore = (() => {
|
|
|
- return /** @type {'true'|'false'} */ (String(npmExists('monaco-editor-core', version)));
|
|
|
-})();
|
|
|
-
|
|
|
-const skipMonacoEditor = (() => {
|
|
|
- return /** @type {'true'|'false'} */ (String(npmExists('monaco-editor', version)));
|
|
|
-})();
|
|
|
-
|
|
|
-console.log(`
|
|
|
-::set-output name=dist_tag::${distTag}
|
|
|
-::set-output name=version::${version}
|
|
|
-::set-output name=vscode_branch::${vscodeBranch}
|
|
|
-::set-output name=skip_monaco_editor_core::${skipMonacoEditorCore}
|
|
|
-::set-output name=skip_monaco_editor::${skipMonacoEditor}
|
|
|
-`);
|
|
|
-
|
|
|
-/**
|
|
|
- * @param {string} packageName
|
|
|
- * @returns {string}
|
|
|
- */
|
|
|
-function npmGetLatestVersion(packageName) {
|
|
|
- const output = cp.execSync(`npm show ${packageName} version`).toString();
|
|
|
- const version = output.split(/\r\n|\r|\n/g)[0];
|
|
|
- if (!/^0\.(\d+)\.(\d+)$/.test(version)) {
|
|
|
- console.error(`version ${version} does not match 0.x.y`);
|
|
|
- process.exit(1);
|
|
|
- }
|
|
|
- return version;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * @param {string} packageName
|
|
|
- * @param {string} version
|
|
|
- * @returns {boolean}
|
|
|
- */
|
|
|
-function npmExists(packageName, version) {
|
|
|
- try {
|
|
|
- const output = cp.execSync(`npm show ${packageName}@${version} version`).toString();
|
|
|
- const result = output.split(/\r\n|\r|\n/g)[0];
|
|
|
- if (result.trim().length === 0) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- return true;
|
|
|
- } catch (err) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-}
|