mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 17:25:39 +01:00
Towards publishing
This commit is contained in:
parent
f1fc190711
commit
103da73f28
4 changed files with 37 additions and 69 deletions
35
.github/workflows/publish.yml
vendored
35
.github/workflows/publish.yml
vendored
|
|
@ -32,9 +32,9 @@ jobs:
|
||||||
node ./monaco-editor/.github/workflows/publish/computeState.js "${{github.event_name}}" "${{github.event.inputs.nightly}}"
|
node ./monaco-editor/.github/workflows/publish/computeState.js "${{github.event_name}}" "${{github.event.inputs.nightly}}"
|
||||||
# outputs: version, vscode_branch, skip_monaco_editor_core, skip_monaco_editor
|
# outputs: version, vscode_branch, skip_monaco_editor_core, skip_monaco_editor
|
||||||
|
|
||||||
# - name: Print state
|
# TODO
|
||||||
# run: |
|
- name: Early stop
|
||||||
# echo ${{ steps.state.outputs.vscode_branch }}
|
run: exit 1
|
||||||
|
|
||||||
- name: (vscode) checkout
|
- name: (vscode) checkout
|
||||||
if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }}
|
if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }}
|
||||||
|
|
@ -145,72 +145,83 @@ jobs:
|
||||||
if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }}
|
if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }}
|
||||||
working-directory: './vscode/out-monaco-editor-core'
|
working-directory: './vscode/out-monaco-editor-core'
|
||||||
run: npm publish --tag next
|
run: npm publish --tag next
|
||||||
|
#TODO
|
||||||
|
|
||||||
- name: Delete `npm` config
|
- name: Delete `npm` config
|
||||||
if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }}
|
if: ${{ steps.state.outputs.skip_monaco_editor_core == 'false' }}
|
||||||
run: npm config delete //registry.npmjs.org/:_authToken
|
run: npm config delete //registry.npmjs.org/:_authToken
|
||||||
|
|
||||||
# TODO
|
|
||||||
- name: Early stop
|
|
||||||
run: exit 1
|
|
||||||
|
|
||||||
- name: (monaco-editor) Patch package.json version
|
- name: (monaco-editor) Patch package.json version
|
||||||
if: ${{ github.event_name == 'schedule' || github.event.inputs.nightly == 'true' }}
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
run: node ./monaco-editor/.github/workflows/publish/setNightlyVersion.js ./monaco-editor/package.json
|
run: node ./monaco-editor/.github/workflows/publish/setVersion.js ./monaco-editor/package.json ${{ steps.state.outputs.version }}
|
||||||
|
|
||||||
- name: (monaco-editor) execute `npm ci` (1)
|
- name: (monaco-editor) execute `npm ci` (1)
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: (monaco-editor) execute `npm ci` (2)
|
- name: (monaco-editor) execute `npm ci` (2)
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor/webpack-plugin'
|
working-directory: './monaco-editor/webpack-plugin'
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: (monaco-editor) Use local monaco-editor-core
|
- name: (monaco-editor) Patch package.json monaco-editor-core dev dependency version
|
||||||
run: node ./monaco-editor/.github/workflows/publish/useLocalMonacoEditorCore.js
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
|
run: node ./monaco-editor/.github/workflows/publish/setDevDependencyVersion.js ./monaco-editor/package.json monaco-editor-core ${{ steps.state.outputs.version }}
|
||||||
|
|
||||||
- name: (monaco-editor) execute `npm install` to pick up local monaco-editor-core
|
- name: (monaco-editor) execute `npm install` to pick up local monaco-editor-core
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm install
|
run: npm install
|
||||||
|
|
||||||
- name: (monaco-editor) Install OS Dependencies for Playwright
|
- name: (monaco-editor) Install OS Dependencies for Playwright
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: sudo npm run playwright-install-deps
|
run: sudo npm run playwright-install-deps
|
||||||
|
|
||||||
- name: (monaco-editor) Check prettier
|
- name: (monaco-editor) Check prettier
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm run prettier-check
|
run: npm run prettier-check
|
||||||
|
|
||||||
- name: (monaco-editor) Build
|
- name: (monaco-editor) Build
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm run release
|
run: npm run release
|
||||||
|
|
||||||
- name: (monaco-editor) Run unit tests
|
- name: (monaco-editor) Run unit tests
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm test
|
run: npm test
|
||||||
|
|
||||||
- name: (monaco-editor) Compile webpack plugin
|
- name: (monaco-editor) Compile webpack plugin
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm run compile --prefix webpack-plugin
|
run: npm run compile --prefix webpack-plugin
|
||||||
|
|
||||||
- name: (monaco-editor) Package using webpack plugin
|
- name: (monaco-editor) Package using webpack plugin
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm run smoketest --prefix webpack-plugin
|
run: npm run smoketest --prefix webpack-plugin
|
||||||
|
|
||||||
- name: (monaco-editor) Run smoke test
|
- name: (monaco-editor) Run smoke test
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm run smoketest
|
run: npm run smoketest
|
||||||
|
|
||||||
- name: (monaco-editor) Build website
|
- name: (monaco-editor) Build website
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor'
|
working-directory: './monaco-editor'
|
||||||
run: npm run build-website
|
run: npm run build-website
|
||||||
|
|
||||||
- name: Set `npm` config
|
- name: Set `npm` config
|
||||||
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
run: npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
|
run: npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
|
||||||
env:
|
env:
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
|
||||||
- name: Publish `monaco-editor`
|
- name: Publish `monaco-editor`
|
||||||
if: ${{ github.event_name == 'schedule' || github.event.inputs.nightly == 'true' }}
|
if: ${{ steps.state.outputs.skip_monaco_editor == 'false' }}
|
||||||
working-directory: './monaco-editor/release'
|
working-directory: './monaco-editor/release'
|
||||||
run: npm publish --tag next
|
run: npm publish --tag next
|
||||||
|
#TODO
|
||||||
|
|
|
||||||
5
.github/workflows/publish/computeState.js
vendored
5
.github/workflows/publish/computeState.js
vendored
|
|
@ -29,6 +29,8 @@ if (!/^((true)|(false)|())$/.test(STR_NIGHTLY)) {
|
||||||
|
|
||||||
const NIGHTLY = EVENT_NAME === 'schedule' || STR_NIGHTLY === 'true';
|
const NIGHTLY = EVENT_NAME === 'schedule' || STR_NIGHTLY === 'true';
|
||||||
|
|
||||||
|
const distTag = NIGHTLY ? 'next' : 'latest';
|
||||||
|
|
||||||
const latestMonacoEditorVersion = npmGetLatestVersion('monaco-editor');
|
const latestMonacoEditorVersion = npmGetLatestVersion('monaco-editor');
|
||||||
const version = (() => {
|
const version = (() => {
|
||||||
if (NIGHTLY) {
|
if (NIGHTLY) {
|
||||||
|
|
@ -57,10 +59,11 @@ const skipMonacoEditorCore = (() => {
|
||||||
})();
|
})();
|
||||||
|
|
||||||
const skipMonacoEditor = (() => {
|
const skipMonacoEditor = (() => {
|
||||||
return /** @type {'true'|'false'} */ (String(npmExists('monaco-editor-core', version)));
|
return /** @type {'true'|'false'} */ (String(npmExists('monaco-editor', version)));
|
||||||
})();
|
})();
|
||||||
|
|
||||||
console.log(`
|
console.log(`
|
||||||
|
::set-output name=dist_tag::${distTag}
|
||||||
::set-output name=version::${version}
|
::set-output name=version::${version}
|
||||||
::set-output name=vscode_branch::${vscodeBranch}
|
::set-output name=vscode_branch::${vscodeBranch}
|
||||||
::set-output name=skip_monaco_editor_core::${skipMonacoEditorCore}
|
::set-output name=skip_monaco_editor_core::${skipMonacoEditorCore}
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,14 @@
|
||||||
//@ts-check
|
//@ts-check
|
||||||
|
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
|
||||||
|
|
||||||
const REPO_ROOT = path.join(__dirname, '../../../');
|
if (process.argv.length !== 5) {
|
||||||
const packagejsonPath = path.join(REPO_ROOT, 'package.json');
|
console.error(
|
||||||
const packagejson = JSON.parse(fs.readFileSync(packagejsonPath).toString());
|
`usage: node setDevDependencyVersion.js <PATH_TO_PACKAGE_JSON_FILE> <PACKAGE> <VERSION>`
|
||||||
packagejson['devDependencies']['monaco-editor-core'] = 'file:../vscode/out-monaco-editor-core';
|
);
|
||||||
fs.writeFileSync(packagejsonPath, JSON.stringify(packagejson, null, '\t') + '\n');
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
const packagejson = JSON.parse(fs.readFileSync(process.argv[2]).toString());
|
||||||
|
packagejson['devDependencies'][process.argv[3]] = process.argv[4];
|
||||||
|
fs.writeFileSync(process.argv[2], JSON.stringify(packagejson, null, '\t') + '\n');
|
||||||
50
.github/workflows/publish/setNightlyVersion.js
vendored
50
.github/workflows/publish/setNightlyVersion.js
vendored
|
|
@ -1,50 +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');
|
|
||||||
|
|
||||||
if (process.argv.length !== 3) {
|
|
||||||
console.error(`usage: node setNightlyVersion.js <PATH_TO_PACKAGE_JSON_FILE>`);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
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}`;
|
|
||||||
})();
|
|
||||||
|
|
||||||
packagejson.version = devVersion;
|
|
||||||
fs.writeFileSync(process.argv[2], JSON.stringify(packagejson, null, '\t') + '\n');
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue