mirror of https://git.tuxpa.in/a/code-server.git
Squashed 'lib/vscode/' changes from 3e344b17b7b..622cb03f7e0
622cb03f7e0 Merge pull request #116444 from microsoft/alex/stable-fix-116060 5933e313e5d Fixes #116060: Clone minimap options before changing them f3a12e053e1 Pick up TS 4.1.5 (#116380) 3b9cef2b8d1 Bump Emmet (#116230) 8757f67bcda fix #116049 (#116319) 73c0a56bbd2 Merge pull request #116311 from microsoft/joh/fix/116094 5cf34afa107 Use weak shell quoting for npm tasks with -- (#116309) 6635ca9a64e Merge pull request #116245 from microsoft/connor4312/debug-repl-fix 65406fcea58 fix https://github.com/microsoft/vscode/issues/116094 43e11faf4ee fix: CreateFile ERROR_FILE_NOT_FOUND from crashpad handler (#116256) 17d65083f6c debug: replace element when appending text to ensure updates in repl 9d194eac0d7 This reverts us to the previous distro commit (#116218) 1fe57f42761 Merge pull request #115789 from microsoft/rebornix/fix-notebook-runstate d63ab6acdbd bump version to 1.53.2 (#116228) 4aff7304539 Merge pull request #115772 from microsoft/misolori/1.53/create-pr-icon 678843ff3ad fixes #115810 (#115943) e1ec11f5183 always fallback to plain text (#115860) (#116177) 615ea78d96a status - update background color (#115886) (#116181) 00d7f953055 add changes (#116223) 3c19fc731cb Pick up the official TS 4.1.4 build (#116222) 5d424b828ad Pick up new distro version and bump version (#116149) ee2c947e064 ci: update newer 11.2.1 for CVE-2021-21148 (#115951) e23884b9476 re #115717 5da053f081f Update Codicons: add 'git-pull-request-create'686357b717
7f04ecd68be use PersistKeySet (#115744) 8490d3dde47 Merge pull request #115701 from microsoft/sandy081/fix115699 1d6c8826375 Fix #115699 f84decb78f3 Merge pull request #115686 from microsoft/isidorn/openEditorsCollapsed 203b86d14c5 fixes 115685 83f7a99bd95 Azure DevOps - Add global variable for VSCODE_QUALITY (#115636) (#115673) e1c818a1711 Merge pull request #115655 from microsoft/rebornix/fix-jupyter-activation 761dd469c13 chore: bump distro 8d779a4fada Merge pull request #115609 from microsoft/joh/fix115353 30fe91131c9 Merge pull request #115611 from microsoft/isidorn/selectForCompareUntitled 8dbf3d717b2 Revert do not show compare for markdown preivew bc38ed1b5a3 fix https://github.com/microsoft/vscode/issues/115353 65006668d07 Merge pull request #115547 from microsoft/aeschli/installProductIconTheme b99487f4168 Fix keybinding for Search view missing from view and sidebar (#115558) feda473d978 Enable 'Install Additional Product Icon Themes' 565dc9704f2 Use label as tooltip fallback properly (#115537) c02643e3c95 Properly set port label from ports attributes ae05392454a Merge pull request #115536 from microsoft/isidorn/debugConsoleCheckmark e4a65573a89 render "Debug Console" action after a separator a62c65bdb74 ignore focus when toggling debug console visibility 4d98741552d debug: do not render checkmark in view menu for the debug console ad232b0ac13 Fix #115509, register a separate action for opening serch editor from view (#115514) 4eb39372949 Fix #115511 Search Mode setting does not open editors unless search view is visible (#115513) 861a88ebadb Fixes #114201 da2adf433d8 Fixes microsoft/monaco-editor#2327 52f437953d5 add my paper cuts 090200d5aea fix https://github.com/microsoft/vscode/issues/115402 b36f9993162 Revert "fixes #114908" 99c406699ff fix mixed cells 384ef202510 🆙 vscode-gulp-watch (fixes high CPU on Apple SI) e5b02b0610c liberate papercut usages 5a52bc29d5e Update working for default external opener d27b3130d92 Center notebook actions (run, stop, renderer, collapse, etc.) fixes #115087 38783a261a6 update version 36cabc4c123 🕺 One more time (refs #114219) 9934dea6888 Fixes microsoft/monaco-editor#2175: Improve hit testing code on FF 9d9aebd2e64 Add vscode-emmet-helper and restrict some labels 76adcde8743 Add `onDidChangeMarkers` (fixes microsoft/monaco-editor#313) de3b3ac5496 Don't exclude all unless there are no includes at all 791930308f0 Fixes microsoft/monaco-editor#2171 29c5c523023 Also apply #114709 to the extension editor 8c5e805d3a5 Fix spelling 662a698ef9e Skip failing test #115244 4d0a3637f29 Fix #115318: Getting started "Tweak My Settings" resets the getting started page f54b4fe5771 Fixes microsoft/monaco-editor#2168 d7821d5fb05 Remove console log ed4bd04c904 add other duplicate label to my endgame notebook 3fe4b0eb2f7 fix #115293, #113933 a7c0b43e1b5 Fix notebook action descriptions d045bc6ed1d Update color name for 'notebook.inactiveFocusCellBorder' (refs #114219) 660d6b82f85 Use unix style paths in includes always 4a338fd0d44 Merge pull request #115269 from microsoft/misolori/notebook-inactive-focus 588c3c49509 Merge branch 'master' into misolori/notebook-inactive-focus 12b56d878be Update color token name 'notebook.inactiveFocusedCellBorder' => 'notebook.inactiveFocus' 7ce63bef177 fix #115290 cbcfaa00f45 fixes #114914 8e22ecf4c85 fic unnecessary import e86befc8a9f Status bar: setting invalid color sets opacity 100%. Fixes #115292 b8bff49c9ae update distro 33e804f211f update milestone 3b87c36e2dc fix https://github.com/microsoft/vscode/issues/115207 631802d5cec comment out arm snaps 8aab6bc62d7 fixes #115219 3da57861612 fixes #114908 bb226913c5f Fix #115240 c8a90a48267 Merge pull request #115302 from microsoft/sandy081/remoteCLI b2a34770f01 #115294 also handle medium exe tip 724888adc76 Fix #115294 05568474922 remote cli: show host label f10dc2a548e more polish 4d3b15fda09 make sure to cancel continuation of `_handleEditorChanged`, related to https://github.com/microsoft/vscode/issues/115219, fyi @joaomoreno 971fa2cc9c6 Fixes #115304 0a943766a5f Fix monaco checks 9545d582360 Do not use the global `monaco` inside the editor bb841e3bbee fix https://github.com/microsoft/vscode/issues/115301 2ce26643d85 have a separate setting code cells in breadcrumbs, hide code cells in outline by default 17c617039b1 Squashed commit of the following: 3a287ee1eae Fixes microsoft/monaco-editor#2302: Only define global monaco if asked to do so or if using AMD a2bcb0608f1 fixes #114804 9519a5cb5a5 💄 clean nuget.config file dcf0c56a796 node-debug@1.44.16 1d15b2fe17a use final DAP spec 1.44 6be5904d199 polish 1c1df3eaee5 fix #115050 flickering tabs when wrapped (#115273) bb931908832 fixes #113703 5d63134de9e web - fix compile 4b5a9c4b5f0 change remote cli to manage only remtoe 19cbd870aaf web api - expose env as API from facade (#115295) ee4516a4851 always on trusted-types for yarn web, fyi @bpasero 03902d48417 Revert "fix #113933." 70de88696c0 d'oh, forgot to adjust anyScore to new data format of FuzzyScore, fixes https://github.com/microsoft/vscode/issues/115250 7a9e56510d2 Not requiring NPM for typings (fixes #115228) fb5bc5dd2ce fix typo: ResourcEditorInput → ResourceEditorInput (#115208) f73c011ae3f fix: disable rosetta option for universal build (#115280) ee7e0ad0933 fix #115107. 5e5f2f3b6ba feat: add identifier for universal app in issue reporter and about dialog (#115277) d42bed7957a fix #113933. d09508d9cb8 re #115012. e48b3d3cad5 Update codespace-related getting started images & wording 64c4f7f49c8 feature insights for notebook. 5aac4f44562 fixes #115267 014aaa1047f Fix #115271: Search in Open Editors triggers errors when done without files 848896a75eb update distro 98da2b151c1 Remove unused variable dfb86c5fa13 Add 'notebook.inactiveFocusedCellBorder' color token b1ba0c70eaf Fixes #114172: adopt latest loader 4febf1e6c38 Add missing class to fix view items For microsoft/vssaas-planning#2286 4378b7f0201 fix #115169. e6d5a209440 Fixes `getBranch` when name is fully qualified ba428fe1029 fix #114225. ed8043effb7 Save only open editors toggle state 8dcebbaf54f path => fsPath again 949a20d14f7 Merge pull request #115253 from microsoft:jackson/open-editors-fix 20f8e59d696 fixes #112347 a1bdcf6aed3 fixes #115121 3d66ab98eb9 path => fsPath e3b0eae7403 Test fix for #114795 22960ca0155 fixes #115073 e375d137174 fixes #114869 cdbc22a9cbd Fix #115234: Cannot view search results when one is in an Untitled editor 977b2f6a1ca fix https://github.com/microsoft/vscode/issues/115201 ff27ea9437d Fixes #115148: Indent new line when using `IndentOutdent` and `appendText` e4f1833d79b Use x64 node for darwin-arm64. Fixes #115009 96fa81bb74a Forward arguments when click is invoked via `makeContextAwareClickHandler` (fixes #115026) 4bd2d367e7c Remote smoketest timeout (fixes #115159) e4022fb0e27 Expose a `TestCodeEditor` that could be used by the workbench tests 030c9d52233 cap notebook outline elements at 64 characters, fixes https://github.com/microsoft/vscode/issues/115199 ee65f21c4f7 use marked lexer to find headings, render MD as plain text before, fixes https://github.com/microsoft/vscode/issues/115205, fixes https://github.com/microsoft/vscode/issues/115206, fixes https://github.com/microsoft/vscode/issues/115118 c789c22efa7 Fixes #115224: Adopt Trusted Types in DiffReview a552ebc1f8b Revert "diffReview: use insertAdajentText instead of insertAdjacentHTML" eb1cf4b0bae diffReview: use insertAdajentText instead of insertAdjacentHTML e06ef891b70 Fix #114379 096d70ce18e fixes #114990 35c5689d292 fixes #114914 0f59f684a1a Fix #114982 bb6014df3b4 tabs - let the overflow gradient not draw over borders (#115129) 676e8d62a3e chore: remove universal build from its separate stage (#115203) 99e7aea4a82 PR template - remove pull requests link full stop (#115090) c246b5704f7 fix https://github.com/microsoft/vscode/issues/115124 7b0cfdd04ad fix git askpass 93830fbe3d2 cleanup #113562 8e68e0c4331 log source f434f853aaf pfs - workaround broken reparse points on windows (fix #115113) 1718be68d0f Fallback to default opener when selected 5662b3b6a25 Log exceptions and continue in calls to ExternalOpener.canOpen 9ee751e859d Error if registering an unsupported scheme for external opener 9421e50aa8e Improve documentation for ExternalUriOpenerPriority c4c5f45ce0e fix #115150. 39d9b04f2c3 re #115018. a56bc0c6711 Don't write preferredLocation into workspace settings for find file references 0ede5243261 Reword multiple external opener error e5c4f426fee Fix setting decription and remove unused setting d9e4f5cf97b Add new icon for open editors view 005db8394c4 throw an error with a clear message when a notebook document is missing, https://github.com/microsoft/vscode/issues/115018 0a0537961c7 tree: do not break fully when you can not collapse an unexisting node bdd2f1628e2 callStack view: set callStackItemType context properly b7e87c1bf27 💄 9788e81e98d Log individual events because `extensionIds` gets clamped sometimes d5bdb0efb21 fix #115011. c3746fa0aed Fixes #114983 21e970473c3 Fixes #114998: Fall back to a document range semantic tokens provider 58624bfcb16 Fixes #115032: Add description db92af7429d Fixes #115033: respect indent action when using appendText 774f887a985 update notebook 578e2dc4ee7 Fixes #115026: Adopt `KeyboardEvent.triggeredByAccelerator` c1afd7c238b Add `_debugComposition` flag 9e07bfd5946 related to #115037 75ff8b11310 fixes #115037 1f1ed78f7db Use ;; instead of ; for line comments (#115036) 960a93f0e2e add unit test for #114971 09ef3735975 Merge pull request #114972 from enagic/master 371629106b3 #114031 fix user data sync tests 08a2f9c5e36 fix enablement handler 0540478dc72 Reduce getting started for codespaces 1a9dd758530 Don't error out on unknown provider. 25f6e3e2540 debug: update js-debug a331c2b515e Revert test changes 684459c8dc6 Refactor searching in open editors logic 17685a9db95 fix #108950. a46fd0ee934 fix: update `isUri()` to compare `fsPath` as `string` 8fa1417e309 run oss too 1.53, update distro 88af66bceed testing: accessibility round 2 500d514ecfa Add fall back to default option for when external uri opener fails 8b1feaed3e6 Documentation clean up for ExternalUriOpener 0e5b47fa43c Use object instead of array for `workbench.externalUriOpeners` ed98eb19685 Fix spelling ae8bd3216f0 💂 tests for selecting kernel. 2f6c928b209 Fixes `getBranch` issue with remote branches Improves perf by reducing git calls from 3 to 1 748b2e5a854 Remove `#` from typescript deprecation warnings (#114787) 60f3919b26a fix #114959. 7e3d5a0ce0f fix #114048. do not update active kernel if kernel is executed. c7cf663d0c4 fix #106362. Keep runstate when undo/redo cell. b112052169c fix #114171 8d7740fe3b3 Merge pull request #114944 from microsoft/merogge/integration fd1ba8c9692 chore: bump electron@11.2.1 2433b0eaf3c update distro f21a3b95e6a Merge pull request #114854 from susiwen8/hover-scroll a3131249625 update distro 58e88ff3ac0 testing: accessibility in explorer round 1 72172ed06c6 Merge branch 'master' into hover-scroll 68b7e79867e fix test-product icon 89e152635ab Limit spin to sync and loading (for #112298) 4ae47297a3e Merge branch 'master' into merogge/integration bd7dff7f071 testing: add test result to proposed api, ids for correlation ff08b2509f6 testing: fix not subscribing to first open workspace document cb69f5c9bca testing: add line background decorations 582ea371c2b [microsoft-authentication] Extend authentication session to return id tokens (#114675) 5a3fedf0c45 Merge pull request #114628 from microsoft/alex/python-language-configuration dac8d916d56 fix #110936 62093ff022b [html/json/css] update services & dependencies d877e86bdd3 Merge branch 'master' into alex/python-language-configuration e451364da15 Update Codicons version 51d19635946 reset template display when switching models. b18634fe902 fix #111587 Apply enablement to command links in welcome views (#113841) 07c3e907eb6 Improve glob module to support OS separator agnostic matching (#114810) 7468a060129 Revert "fix #114171." c708e3d5cf0 Move `workbench.startupEditor` to RESOURCE settings to allow setting to gettingStarted on a per repo basis Make sure to disallow setting to readme via workspace settings to prevent tracking attempts. 644d108f0d9 Do not reveal `FindOptionsWidget` all the time (fixes #114630) f3136a25fab Merge pull request #114934 from microsoft/merogge/terminalDimensions 60bce0f6287 feat: add macos universal build ci config (#114446) 19d87449a7b Add option to override 'pinned' when setting list selection Fix #114651 88fd9d9d178 fix #107239, set terminal dimensions d21d85a3fc2 Fix precommit hook on Windows c79a0282da3 Fixes microsoft/monaco-editor#2301 95227b3e10d Fixes microsoft/monaco-editor#2311 bf93e45b9c6 files - document file modes we use 1eb89d7da18 Add telemetry in the area of reconnection 3b03189afae Restore extensions in core (#114921) 5fcd9f74845 update distro 1aa795f2ff1 update jsdoc for #114908 415398e3995 tests - only use 'junction' for folders 604e231d371 fix strictEqual problem 7a89df95922 some more strict asserting tests 3cb3624be97 fix build b2242cc5ebf rename notebook outline settings to `notebook.outline.showCodeCells` fa7d5e7def0 fix `breadcrumbs.symbolPath` setting 830a7589e2a tests - enable symlink tests for windows again via 'junction' that do not require admin privilges 14cc5263711 Cannot open a remote workspace via --remote syntax. Fixes #114900 e60e0eab352 Cleanup some file related unit tests (#114895) a38cc82a154 fix mock, fixes tests 5592ed02fb3 rsource -> resource (#114837) bc3a770b78e perf - suggest status shouldn't listen when hidden dcda88e5a69 fix https://github.com/microsoft/vscode/issues/114798 eb5f9becd90 make SubmenuEntryActionViewItem not eagerly fetch/create the actual actions 137b6f5a464 Update endgame notebooks da0a04fffb9 Copy function fails over dangling symbolic links (fix #111621) c8ff3471b59 Do not attempt to open a workspace/folder that no longer exists when reloading window (fix #110982) d2cbc66835f Add empty problem matchers to build tasks so they don't ask me questions 1f8b429635d chore: custom protocols will also be intercepted by webRequest 62fcf3cce7e chore: cleanup webrequest filter for svg files 228459cc63a Fix: show hover when mouse control hover scroll 79be0a07248 Fix #114794 7b317afd931 Fix starting scroll for URIs with fragment (#111126) 98ec233c77e Fix: release note don't use editor style (#114709) e91fd3bd40b Updated Getting Started images with transparency instead of blur f0bd7eee100 only create processEnvironment once, now tests pass Co-authored by: Daniel Imms <daimms@microsoft.com> 4300e6c7d2c Fix #105177 get terminal environment variable to show up in remote container a095d7fcf74 Make sure altClickMovesCursor gets refreshed c2d09aaeac1 Open Language Mode picker for new file (fixes #110330) 885e66edf9e Open Language Mode picker for new file (fixes #110330) cd6fa35fb94 fix #114233. add5b32d959 testing: initial implementation of test decorations 3e55989cca8 testing: move test filter to action bar 2c19f7fb988 Fix #105177 get terminal environment variable to show up in remote co… (#114721) d8a3c5f61c8 fix integration tests. 88d66caf686 fix #114782 ed72c64b87e Remove unused constant de11a7dec60 Rename `isEdge` to `isEdgeLegacy` (see https://support.microsoft.com/en-us/help/4533505/what-is-microsoft-edge-legacy) 007f704eaa9 Remove IME special cases for Edge Legacy 4fac328d03d ok I'm out 86d96faaaf8 extract menu entry view item creation logic, fyi @joaomoreno prep for https://github.com/microsoft/vscode/issues/114123 bd929b33de6 logging - put storage tracing behind a flag to reduce spam b9c67304807 add some docs for workaround for #114227 a07327a430d better default for PeekViewWidget#_getActionBarOptions 3f3b4136060 maybe this is it 4b7f41a732e Merge pull request #114544 from microsoft/aeschli/114542 67c9ab0d514 test all extensions if system/builtin a4a9a5e69db debt - use css variables instead of dynamically injected style sheets 534d5b08948 💄 89855f0fcdb web - editor context menu sometimes wrong (#109166) 7bb55c99943 Merge pull request #112169 from chenjigeng/fix/debug-auto-decode-link da48ddc5fea upgrade gulp-atom-electron b57017797cf debt - adopt some strictEqual in tests f123c904b17 remote cli: do not sync installed extensions 5809e9eb031 testresolver: support server extensions dcc1e9df991 workspaces - shuffle some code around b3807b04f22 Merge branch 'master' into fix/debug-auto-decode-link ebf351d04b3 workspaces code cleanup 4937aee5ed5 repl: on debugConsole.wordWrap change recreate the tree, do not require a restart 1e0f94f9009 Fixes #114468 6f9c818900d 💄 0d8ec8f09fe Ports attributes open -> openBrowser 1be6d22ebca add setting `outline.showNotebookCodeCells` to control if code cells should show or not 37c162ed6df revert 37a4b96ae18 simplify FuzzyScore structure, fix high, low match 9939537ea44 debt - use main in main side services consistently (workspaces) d7ddcd1e08c debt - cleanup WebFileSystemAccess#supported 6b1675af7e7 Open Language Mode picker for new file (fixes #110330) affac2b5ae0 Fixes #104004: Do not attempt to run extension tests in web worker extension host 2ef14cf785a fix workspace tests on windows 1848d3111fc Add workaround for #114227 ed00aebc389 Link names 98b4661b002 💄 fed0eb5fd9a web - remove old API interfaces c7cb19ed216 Merge pull request #114749 from microsoft/ben/folder-id e5dd4b6e4b1 Add mock support for public ports to test resolver 4c0a4179e6e workspace - more tests for identifiers 106f26b27bc bulkEditService: dispose of listener in finally 1285843e55e When a tree resource has a tooltip it takes precedent 3ee49fa3f86 explorer: when new file system provider registered set whole explorer input 05bf7b0afcf Merge branch 'master' into ben/folder-id ec337988dd6 parseUri/Path => resolveUri/Path f9d16c3b3c2 fix tests 3f26fd17ba5 workspaces - some final 💄 cf4c4a0ece7 drop gulp-cssnano, use gulp-postcss b87d56c5332 distro 2e5034a74b2 Retry downloading playwright when hitting ECONNRESET f1e62c1190f upgrade dev dependencies 9321b2f141b bulkEditService: veto shutdown if bulkEdit is in progress dca2d81c652 upgrade build azure-storage 70a3118892b Allow svg files to load from Schemas.vscodeRemoteResource 4f2341834e6 fix nls problem, fyi @JacksonKearl 70f4451001a remove unwanted #region comment from vscode.d.ts 2fd18ac793f workspaces - reduce stat calls e61d0ba267c mark secretState field as private 4b9ccf578c3 fix #114727. load preloads when switching kernels. 167b920831c Enable searchInOpenEditors by default when not in stable 7e55fa0c543 Search In Open Editors (#107756) 9f9d1a76d97 support kernel id and extension a8145f67dcc testing: polyfill test heirarchies (#114601) 572bc1810dc Make sure we dispose of the open with picker after an item is selected 542de8e0093 Move schemes to opener metadata 885585c7f87 Remove test math formula from readme 793f2e06af4 Fix weight of terminal search workspace keybinding 3d641d9d35b fix #111889. d972bfc3266 Update elliptic and nwmatcher (#114670) 7310b17e25f Merge pull request #114669 from microsoft/merogge/altClick dec03c4a714 Improve doc wording 219d323100f improve setting description and make setting true by default and add === 821afe5e929 fix #111885. avoid duplicated execution placeholder status bar item on split editors 59fac4862da Merge pull request #114665 from microsoft/sana-gettingstarted 3003bde2214 revert "Open" to "Focus Terminal" 4b9b2ab9a60 Fix #114707 dbd4ede23f8 add api lint rule for region comments 41d8bb26110 Merge branch 'master' into sana-gettingstarted e7d3eb87cb0 💄 565f3a59e6c @ for CI failures 98ee1c6efda update distro 3ec90672006 Simplify local port logic in test resolver + OS check f2b2854a6b2 (for now) have tab decoration off by default, https://github.com/microsoft/vscode/issues/49382 67f1ada71a6 chore - a few more strict assertions in tests e8f6c273819 Use random port if privileged in test resolver bdc3b07f428 Fixes microsoft/monaco-editor#2305: Account for padding when computing the content height and having scroll beyond last line enabled fcccc85ff97 Add more to test resolver tunnel factory and fix port filtering ad437ef958c Fixes microsoft/monaco-editor#2313: navigator.clipboard is not defined when loading not secure, via http d3fbbece829 💄 5a95cd26e4f Fix #114708 3ad7af3ab6b 💄 9b7323a7efe cleanup types d8831220ff1 Update showCandidatePort for test resolver f6490bfa5fc 💄 getFolderId 758f66b5986 workspaces - actually use workspace 79230501646 Don't await remote env before setting up process manager 9ca50fbb47c Merge pull request #114702 from microsoft/tyriar/109600 4877478fb6e Hook up alt buffer active ctx key b5f36a24b63 testresolver: start a test server a49455b5286 💄 isCurrentWorkspace af915f0bc4c Create terminalAltBufferActive ctx key 6755b6bb3e9 electron - need to check if window is destroyed before accessing webcontents b1cb3b1cbb1 Merge branch 'master' into ben/folder-id 37ea1d82847 Merge pull request #114660 from microsoft/isidorn/async-tree-diffIdentity 19e390d5b58 polish 04ca5c80d3f Merge pull request #114593 from jeanp413/fix-111572 0249c31a59b testResolve: more tunnelservice fixes c735c8b2913 Merge branch 'master' into alex/python-language-configuration 67bf6577b4d testResolver: fix for tunnel server b6f19ccf3fa CI notifications 7d5052a8fce Merge pull request #114687 from microsoft/alex/ci-windows-cache 15e58cea4d3 test resolver: add tunnel server 18c8a3f0482 workspaces - compute workspace ID and check for existance in window service e9967519db1 chore - strict asserting in snippet tests 515f179c98a decrease repl refresh timeout f63310750f6 Even more tunnel provider logging 44e020ac02b Trigger CI 05e4d593c23 workspaces - move id computation to main f5d760b48f3 Merge branch 'master' into isidorn/async-tree-diffIdentity 831d1942874 Create .build directory e8473247567 distro 4f98d9c0be7 no double reveal of notebook symbols 232052d7e63 Create our own node modules archive (#114516) 33789a59919 workspaces - drop duplicated payload interfaces dd84387f9e6 window - merge workspace and folderUri into one 0c02f245f07 bust node module caches 914d8dff29e add notebook for notebook paper cuts c71edb7d883 get marketplace extensions in `yarn web` f4a0c209bea formatting c8ce53e492e window - reduce to one property for opened workspace f19f4a1b908 Fix Keep activity bar icons stable on reload (Web & Remote window) #114144 9cfba546810 move build/dependencies.js to typescript acaed317263 workspaces - add identifier to single folder identifier 7e2d8b48e36 Merge pull request #114581 from microsoft/chrisdias/solongsofar 3207692dbbd Merge branch 'master' into chrisdias/solongsofar 44eb775d1db further remove single workspace identifier traces 46b964b1b7c workspaces - remove ISingleFolderWorkspaceIdentifier requirement from workspace service 47a6682df6f fix: allow svg from devtools scheme eaaf647c8c5 workspaces - remove ISingleFolderWorkspaceIdentifier requirement from history aa774aeeb79 💄 regions 71feb05bfba 💄 workspace payload 6b241a6845d Closes #111210 - adds openRepository api 5bcd2220750 Fixes checking for rebase against wrong branch Refs: #1866 1a4b35c2023 💂 26aaaeb11ca re #114583. 6e56202803c pin notebook editor when execution triggered. ece4eeb0647 only handle override when id is provided. a2830f41653 execute notebook with args 1c755a4fca2 fix #114674. 9a55eff36fa testing: make filtering work correctly 847c52e69fa testing: add hover titles for items 0e9e4e46774 testing: show stats about the last test run aa14d823df5 testing: show badge for running/failed tests c2a2e9cabf8 testing: show test progress, implement result service 48c7596e909 testing: fix swapped run and debug actions c6e62500779 Merge branch 'master' into chrisdias/solongsofar 1123ea5791b set false by default and consider multiCursor de24392e690 fix #114583. 79ec33ab1eb Merge branch 'master' into chrisdias/solongsofar f087f82a3b8 allow reopen notebook with another view type if not dirty. 559a63373fc fix active notebook editor in repen with quick pick 3fef8c795c5 Update gettingStartedContent.ts d591739670c Fix #97564 (#114438) 5717c0396ad update distro 1509770d10d Fixes #58440: Finalize `OnEnterRule.previousLineText` API aab5336e534 polish 9b1d85bad8c repl and explorer adopt diffIdentityProvider be4d10efa1b async tree pass on diffIdentityProvider to regular tree 28b221faa8b Bump concat-with-sourcemaps from 1.0.4 to 1.1.0 (#114648) 2e40c684ecf Bump fstream from 1.0.11 to 1.0.12 (#114649) bc3a873ee6f Bump macaddress from 0.2.8 to 0.2.9 (#114647) f9109f4464c Bump sshpk from 1.13.1 to 1.16.1 (#114645) d3965a2b4dd Finalize secrets API, closes #112249 699b02d3ae3 Bump hoek from 4.2.0 to 4.2.1 (#114643) 93ae815ba14 Feedback on secrets API #112249 64fa272029d Bump stringstream from 0.0.5 to 0.0.6 (#114618) 1266a4e4d05 Support git-cmd.exe as a git bash shell cbbf2d09904 Correctly resolve mapped drive on Windows 7139a93a8c7 Bump mixin-deep from 1.3.1 to 1.3.2 (#114619) a011dab93e6 Fix #114639 ec1eda0d96c Rename `OnEnterRule.oneLineAboveText` to `previousLineText` after API call feedback (#58440) 38c051bf865 Catch errors in tunnel providers and log 947626dfa4b fixes #114616 bab7a83909b shared process - check for destroyed webcontents before calling postMessage b0883ec87a9 Properly call dispose in tunnel factory We really need a lint rule or something for awaiting/not calling functions 02f7983156e More tunnel logging a7980b630c0 some initial 💄 0b038406a95 🆙 distro 6c4203f7482 Modernize CLI main (#114623) aaf5a7fee3b Merge pull request #110912 from Wscats/enoyao-Environemt2Environment e2bce32da4b #114627 complete fix 0fbab387483 💄 strict assertions in extHost, mainThread tests 5cec4e2da6e don't expand outline tree when just updating, fixes https://github.com/microsoft/vscode/issues/114386 845a4d4268d add new rule to enforce Thenable over Promise, adopt in vscode.d.ts and vscode.proposed.d.ts dfc8f5ab91b comment-out console.log fyi @connor4312 e9263cc8269 some API proposal for open editors 543af670531 fixes #114607 2d5f7fd0726 Move `onEnterRules` to `language-configuration.json` 87dba0db6b2 Fix #114627 368c03fdc8a Fixes #114348: Allow `onEnterRules` to be defined in the language configuration file 390dac56a51 debug dynamic configs: Use the type of the provider, not of the config since config sometimes have subtypes f9f87fb6fa1 Add logging for tunnel creation 37c4d4b0a83 fix https://github.com/microsoft/vscode/issues/114621 b675fa18cb4 'Resolving your shell environement is taking very long' shown in every window (fix #114622) 06ab012baa5 state service - actually implement interface 9deba1b10ae code catchup 4d0d36c6ab1 update distro b31660dccc7 update distro f3c865334d4 use real tsec instead of vscode-tsec fork c0a0a35a87c more clarifying comments for shell env resolve 6effd9dce9c better fix #114564 a16beb16509 testing: fix run all tests command b50bd5d0944 Close #114342 1f8643ef760 Refresh Images In Markdown Preview On Change (#114083) 686cd7df530 testing: clean up actions, add run/debug all, rm duplication bb1c05e62e2 testing: unify testing view f37dd663235 Revert "window - do not send IPC messages to destroyed windows (fix #114563)" 16ea22eea19 Update Codicons: Add 'combine' icon 7f4d67c94cb Fix #110812 (#114553) 049735e8d96 A case for 'Shift+Insert' added. Fixes #114103 (#114520) a11dd7cd48d fixes #114199 3ed456050c7 Fixes #111572 6d6fec82092 Finalize product icon theme contributions. Fixes #113828 c42b385bcea Disable contributed openers by default in calls to openExternal fe81f9f5b26 Add link opening getting started task action. Closes #114582 3e4552ffcc7 Remove unneeded mapping from cintainers to disposableStore 3411ae55cc8 Allow splitting gettingStarted editors fixes #114321 fa2dbc16ca8 spacing 82a21e5a032 🌲 239213eaeb1 push it real good 3c4f06dc98a update distro 010e1d0e4a3 open in new tab 74f31a68598 Fix #111299 (#114441) 36cb0bde33a ci: disable exploration sync on PRs aef623dc1d3 remove "so far" from Problems message (which assumes you'll have problems later) eba7c23da0c trees: rename option to diffDepth b32d137681d Merge branch 'test-tree-testing' c100b5c26ac add clearUnacknowledgedChars flow control 6815e754602 Merge pull request #114237 from microsoft/smarter-indexed-setchildren bc84f07dc53 navigationActions: remove dependency to notebooks 81ec098e60e Merge remote-tracking branch 'origin/master' into smarter-indexed-setchildren 88835344408 trees: don't use diff identity provider for resort 7ae39d955d4 fix https://github.com/microsoft/vscode/issues/114576 ee4f4dbf97a make trusted types policy strict bcb5f3c77b7 update mkdirp fe1fdf0b4fe Use correct value to enable port finding 616fb1cfed2 Merge pull request #112317 from plainerman/fix-99072 c0c033ff4f7 Use port auto forwarding setting to disable port finding (#114574) b0b4bc4e338 add grammars scripts 15a285fd5ae Change "Requires Sudo" to "May Require Sudo" c6145fc3065 ext (un)link 4ff784e1fbf promise 💄 cf4111f6f89 show a modal dialog when no default formatter is configured, https://github.com/microsoft/vscode/issues/113903 dbf36e4cfb6 Change aria label when attaching f8df6a7e47d oops do not have .only 5a4d90a550a window - do not send IPC messages to destroyed windows (fix #114564) 635d7af6385 update ext types 7a34c6d6227 update tests 36929d3b59e exception widget: allow to tab over each link, enter to navigate to link 3c49afeaafa fix hygiene 867a52fc090 ext each: allowUnknownOption ff393a3349e add open tunnels to test resolver af2bcd4d461 bring back vscode-colorize-tests 0e7f3d0d8cb Revert "remove colorize-tests extension usage" 971190e4d0f fix region comment 81eccfbf68e cleanup native modules test 28ad78e7dc8 fix https://github.com/microsoft/vscode/issues/114537 af59db28c8d stream - some cleanup of observer 78d5286adb9 Bump sshpk from 1.13.1 to 1.16.1 in /build (#114534) 9af9580bf0a Bump stringstream from 0.0.5 to 0.0.6 in /build (#114533) b165e20587d InlineHint#hoverMessage becomes description (maybe better tooltip?) and support string OR markdown strings b47aa19443c FileService improvements (#114428) 2d9a0d12131 inline hints: tweak colors, react to theme change, add rounded corners to hints d29bb624a40 Merge pull request #113285 from Kingwl/signaure_arguments_label caa87e0b523 editor status 💄 2472798cd57 Fix: selecting entry should focus back to editor (#114493) 32b28f6f8f9 And again bump distro ce106c3924a Bump distro again. ced398d18a8 Bump distro 30f17c9572a Merge branch 'master' into signaure_arguments_label dc588389507 remote install-extension with VSIX 18aa3199c23 Avoid `ERR_STREAM_WRITE_AFTER_END` 847300e49a9 support vsix for install-extension 92083ed3e18 yarn ext 085317e932e dev: ls d6ca7769f42 create extension workspaces bcf514160be uninstall-extension should remove both local and remote extension a40b4e72d08 add API command `vscode.executeInlineHintProvider` and some end-to-end tests ac85fb8a74b fixes #112045 7a938679f82 clamp font size at editor font size, don't go bigger d65ab8dcd9a use all of context decoration as decoration type key 4af282ea26d explorer: download report progress in the explorer due to rich download progress to not get double notifications 1d3b03bd551 padding should depend on font size too 4651f66cca1 simpler decoration type management (rely on internal ref counting) dab702a135e extManCliService: Sort listExtensions, fix output f101028176c Fixes #114299: Add commands for invoking semantic tokens provider 5087b08c6d1 💄 1981776d0f9 less state inside InlineHintsController-type, only have one type of decorations, and much 💄 d427deac780 explorer: adopt confirmBeforeUndo 74f272fbb7d update distro c27642c76d6 Merge pull request #114421 from microsoft/aeschli/remoteCLIExtensionsManagement 0d4bf785b6c remove hover (should come via decoration) and action/menu (should be self contained if at all) 97f237272c9 rename remote commands to _remoteCLI ae67879ed5d don't propose new API on ThemableDecorationAttachmentRenderOptions 756337d48af Merge branch 'master' into signaure_arguments_label 2bb41a14025 dev script 2388c80c74c Add `confirmBeforeUndo` option on the undo redo element 407557ca234 Save file dialog: sort file types alphabetically (#114487) bf90bd15185 cliProgressMain: add LocalizationsService to ServiceCollection 911a54273ce Merge branch 'joao/fix-web' 9995d128240 missing build output 09bc6fc64b1 Migrate to new deb repo (#114527) ed8655201ae fix web extensions 7fa8f1aa7fb Remove plug icon from ports view Part of https://github.com/microsoft/vscode-internalbacklog/issues/1689 667e41626f1 explorer: if you can not undo, pass undo to editor 85f1501c861 update distro d3611cbb634 fix toString 2ef04b24f42 💄 c208ec384c9 💄 move all scoring logic into _doScore 9441f1c6457 Add support for npm scripts with a space (#113840) 253d99a16f8 update distro 84865c05ecc Merge branch 'master' into aeschli/remoteCLIExtensionsManagement 22e02e00804 use URI for VSIX paths 96001455045 Fix tunnel creation in web 1c131cf2657 Avoid extra fields ebac10e0a56 Avoid conflict error 3c2c937f991 Merge branch 'master' into signaure_arguments_label fcc00b29f5e Avoid ts changes (#2) 08f3bcec33d fix https://github.com/microsoft/vscode/issues/114518 c16956439b3 Bust node module cache 5560c9f4da0 Fix #114455 0a2b6d4a1c6 inline collapse all actions 141b275c41f Merge pull request #114260 from microsoft/sandy081/comments/fix92038 ff309d2a239 Merge branch 'master' into sandy081/comments/fix92038 39edf4351b9 Trigger GH CI 12ef541b365 🆙 distro ff9fbcb077b telemetry - lift some helpers to electron-sandbox 93b5a0591f7 sandbox - lift remote agent service to electron-sandbox 9cea4954aa5 notifications 💄 691951c3b1c editor title - no need to update menu onDidRegisterExtensions ec5d1c2ab93 debt - push more window related things to window helper class eaa959d34b8 fix #114273 253e9e32261 shared process - consolidate services 0c8cf08b44b shared process - drop management service 1caaf1b2dbd 💄 path labels 61312f3708d Remove instantiation service accessor 2e89c2d4ba5 Add 'key' to onDidChange of secrets API, #112249 c5f0bac2a81 Create issue directly if signed in, fixes #95165 0faf1550289 Disable on enter test 48b726e39e7 Fix regex 5f6acfb68e1 Move jsdoc completion tests to smoke tests 800e173c403 Split ts into unit and smoke tests b813d5dd300 Leave the local extension host running when connection is lost to the remote extension host 3a9daf3e34a Adopt new vscode-userdata path format bec5afa2923 fix: remove unnessary asar files from mac arm64 a31b0617e24 expose altClickMovesCursor as setting (#114429) b2575665d82 Emmet wrap update, fixes #113930 21c11ba864c Fixes #114433 - adds setting to avoid git config 79cfca5aa29 fix #114416 LabelService.getUriLabel bad relative path if in root workspace (#114419) 5a25a566959 workbench.action.debug.start => workbench.action.debug.selectandstart a3febc56143 Potential new formatter for userdata in serverless. (#114296) 663532c3173 Skipping unreliable test a68f1326e87 Update built markdown preview code 308a4f6a484 Make sure ts extension has loaded before running on-enter tests d87041eddef Downgrade simple browser to prompt instead of being the default on web 3310d3ac2d4 sort notebook content providers in the list. 03dd7bf1d91 testing: polish and unit tests for the test tree 337b3e8d055 turn on flow control by default 7c4248780c8 adopt useCustom for permanent connection failure 2137a7f8508 implement useCustom in dialogService 5b8f78a1570 Move sync-enabled trigger to gettingStartedService 67c988005f9 Do not wait for the first reconnection attempt in the reconnection loop b64a4ae1aa3 Scaffold `MessageOptions.useCustom` 6d50c71f41c add editor command, fyi @dbaeumer ff042e9fa40 fixes #114203 381b99f6415 Also run the output based auto port forwarding (#114424) f7e7a95479e Merge branch 'joao/remove-grammar-extensions' bf764f1ce6a wip: sync-extensions dev script c198925570c extensionsManagement for remote CLI 4974a335112 smoke tests are tests too f745a912ae1 fixes #114420 62bb9b3d3fd shared process - adopt toggle method from management service 65582ba33d4 Fix #114326 0442b734227 remove devops ci badge d472f9d503c remove devops continuous build f8dbf7dd079 Merge pull request #114359 from microsoft/ben/shared-process-message-port 4af3c1c0576 get grammar extensions from marketplace 217aab28fac breakpoint polish condition context keys 6ca430e6a6f Merge branch 'master' into ben/shared-process-message-port 55325988a07 shared process - basic message port tests d952c818176 Fix #114379 6f9f6f806c1 Azure DevOps pipeline artifacts (#114405) d577c4b18da remove colorize-tests extension usage bc7d3c9ea6d remove grammar extensions be2732570ac Include tunnel service canElevate check 6889ed3ab17 Notification for elevating when using privileged port from openTunnel 25a9fcdb918 Merge pull request #114388 from jeanp413/watch-copy-value-selection 98acb74149d shared process - fix --status invocation addb6b9b53a 💄 55e10fd785a shared process - introduce a separate service for management 22c1c0b486d update distro again ba7f5c60a5e update distro 5d620dc8466 Update Linux publish script 45e8d6ebc65 Update distro commit c082930a439 shared process - introduce platform/sharedProcess ec2a8e5b9ee shared process - rely on "close" event for disconnects 9e1863ec2dc shared process - 💄 98d2d74ba07 Revert "Publish scripts update (#114375)" 99f0ab9f732 Publish scripts update (#114375) 2bf5b56f115 shared process - move the shared process back to IPC folder 8dff4cfa55d Expanding Getting Started text based on first round of feedback. bcb33ef6290 Merge branch 'master' into ben/shared-process-message-port 9c7128d8fab Fixes #114384 - recheck resources after save/add 746c455458c Respect multi selection when Copy value in Watch Expression View. Fix #114353 1894765dd17 Merge branch 'master' into smarter-indexed-setchildren 1a6eef3170b Update image ref 54cb0ed544e Clean up settings sync entry 4207c4ee13e Move defaultExternalUriOpenerId into configuration to avoid cycle 5c39159acb4 Fix cycle 4566eebe4fa Fix typo in markdown sanitizer (#111258) a34e751b017 Fix scrolling of markdown preview. Close #65504 (#111094) 64496f82196 Allow using 'default' to force fall back to VS Code's default opener 6cceb4eab08 Remove enabled setting and try to open simple browser to side of current editor 1e3a23b4e0a Fix simple browser button color for light themes cc5e8b22faf Continue work on url opener api a590d4fac36 Only show "Open in VSCode..." when isWeb. 67c889e3941 Merge and restructure menu (#114383) 56a6279a1c8 Don't use getActions in search view #92038 856277c8590 Github Login => Setting Sync ad3974ad88a 💄 e32e353bfde fix #114171. 255853d1714 Remove emptyWorkspaceSupport when conditions 11d18c2c094 `remoteName == codespaces` for codespaces section 9f3832dc688 Bust the node module cache 5029b4f362d Fixes #112552: Set server marks to `ITimerService` 9cb4f1e2ae4 update distro 43d111c0a48 Getting started content (#114305) a4b13661009 Add performance marks to `IRemoteAgentEnvironmentDTO` cbb94cfb607 Revert "fixes #114203" 8dfc81fedc1 Small tweaks ff7aabe3fca fix #114215 c8a6ddba9d0 Enable forceConsistentCasingInFileNames flag (#114334) 6525b42f479 remove unused file e12a9d74a62 #114144 fix remote explorer icon flickering d03490f3532 fixes #114203 f34a3ace3f9 update distro 55960b7d61e add flowControl to terminalConfig 7ae54ca2d6f breakpoint widget: use same mode for coloring as the underlying editor 835a1ce6efd allow execution against a hidden notebook editor. 5d6cba5cbc2 Reworking external opener implementation to allow configured openers to be called directly without a canOpen check 5b1e59c636c explorer: hide open editors for new users e1d8b926583 update distro 30f61c2449b part of #114214 serverSpawn=true c4d5b055d37 Merge pull request #114269 from microsoft/alex/fuzzy-score-improvements d4f993de63e Saving an untitled file closes it (fix #114272) e44fb4ab927 update distro 526f826ac14 fix #114192 634ebecb8b7 Refactor code to use `await` 3e6535d882c shared process - implement message port connections and wire in d6f27b92719 Polishing/fixing/addressing feedback for portsAttributes Includes: - fix in json schema - use object instead of array - change label of already forwarded ports when setting changed - fix for merging ranges c972009ef68 Merge pull request #114214 from microsoft/tyriar/flow_control cc8c9a2230d No need to store scores a79276dc649 Move to log service f8ec60aa06f Add flow control setting, remove fake latency 98038a8835d Merge pull request #114208 from gjsjohnmurray/fix-37570 065f0e46405 Auto forwarding fix 7a9bb5a44f9 breakpoints: inline action to edit condition. Render conditions for function breakpoints. Allow to edit conditions for function breakpoints e9f6c35c17c Fixes #114146: Increase max BracketSelectionRangeProvider duration to 5s in unit tests 4e4d2484a74 Extract `TestTextResourcePropertiesService` to its own file 00f8540d793 Fixes #114332 f1cb1b27f3e format 40e3106e5fa fix list drag affordance 7899bfe3eee Merge pull request #113315 from qchateau/fix-semantic-highlight db30147068f Add test for case to assert that fetch should be scheduled again when a text buffer change occurs while the provider runs and the provider returns null 44278132f4f fix peek view alignment cd906568752 shared process - document electron IPC 96b44121f98 shared process - add error handler and graceful-fs 2964fcbb846 shared process - extract more cleanup helpers to contrib f1c510b4a88 Merge branch 'master' into ben/shared-process-message-ports c265dff48a2 chore: bump electron@11.2.0 a8dd7f60a62 update collapsible when children change 710846866f7 Activate extension on simpleBrowser.api.open b7f9eddf043 Allow passing viewColumn to simpleBrowser.api.open 9b83eb6eb50 smarter depth selection a1d5ea876c3 Polish, also fix #113930 2b5ae783bf6 testing: add full json reporter to show more complete output d39eefd1b0d update distro 59891debcf0 Wait for outstanding zlib flushes when draining a WebSocketNodeSocket (#114314) ea13176ee96 Enable image preview for avif images 7da421d99bd fixup! make it work for compressed trees, recurse 6c4a00ce747 Make default text editor replace existing editors for resource (#112848) a59f30011c1 Add a 30min cap to CI jobs e7aa009ac3c Remove enabledHosts setting 61ec57016c4 Fix spelling 47aa3ad09ab Continue work on opener service d6936dd524c Add mechanism for snippets to overwrite Auto-closing pairs in some cases (#114235) 2ca7b5426a7 💄 fb6a9b4824b fix #114289. notebook.selectKernel takes kernel id. 2156b8cc758 check and ignore not found error 31a15b5b9a3 Add command to kill server and trigger handled error 23be24d8289 Allow theming getting started page progress bars closes #114303 2774f79df3f Do not show "Cannot reconnect. Please reload the window" if the cause is a handled RemoteAuthorityResolverError 56e05127690 move to browser namespace e5e791003f4 Merge remote-tracking branch 'origin/master' into smarter-indexed-setchildren 2d892ae9c7f Fix arch check for PowerShell enumeration (#114292) 3ca55d031b1 Update Codicons: increase gap around plus icon (fixes #114016) b903748b833 Fix candidate filter and auto forwarding wiring (#114290) d66db5cc754 fix https://github.com/microsoft/vscode/issues/114220 c88a51e10a8 Merge branch 'master' into fix/debug-auto-decode-link 4450e1d827d Azure DevOps - publish Windows artifacts (#114285) 42d7d3a47d7 breakpoints view: render edit action inline for exception breakpoints 40d6f79875b MenuItemAction: make sure to respec item.icon a198be16f93 shared process - some 💄 67f8c0ca5a2 Merge branch 'master' into ben/shared-process-message-ports daa7afebd06 remove undefined from outline data source cf03ef33f45 allow to clear input of data trees, fyi @joaomoreno 0ecb7735496 shared process - more cleanup dea0095e83e Add icon for public vs private ports 212a9434541 Merge remote-tracking branch 'origin/master' into alex/fuzzy-score-improvements 36a9cb8645e Improve `fuzzyScore` 475d3464e87 Have single outline config and let outline creator know for what they create outlines 9266fc49839 mock a label service to avoid breaking layers in tests 9af036b8274 Fix comments b4e4bd16421 Allow tunnel providers to support making a tunnel public 9853c8fe6d7 Fix cr issues a4f9e607619 fix https://github.com/microsoft/vscode/issues/114266 2376bed71e1 💄 some region-comment polish 64f32932c68 debug console: fix error in console, do not bind to same htmlelement a scoped context key service 75ea87a2636 shared process - introduce platform/sharedprocess dcce02644ea fix https://github.com/microsoft/vscode/issues/109658 5ce7b02b6e8 refresh the remote indicator when actions change 5db4708e99d shared process - avoid payload IPC roundtrip and enable console based logger 6fef673683f update distro de4463874c4 callStack: do not use getActions() 152d0ec8f05 finalize CancellationError API, fixes https://github.com/microsoft/vscode/issues/93686 adb037b74d8 fixes #114137 e59dc77d0d2 shared process - more cleanup 3f37b664fcb adhere to DAP spec; fixes #114229 e776f87e140 fix --builtin 7285f791ee5 Use menu 1fae5211635 shared process - more cleanup 9bfa4c1d558 Merge branch 'joao/extract-extensions/themes' 9c6e10497b5 use in-mem fsp 7eb52e75e08 shared process - more renames eba7707d382 shared process - clean up some types and imports 675e5da76b1 shared process - expose methods for message channel API d0749f8c9a3 use in-mem fsp 936e77761b5 include error into startup error dialog (#112846) 68ba207260a List still dirty files when backup fails (#114064) d4be66da200 Fixes #112487 - avoid using stale cache for render d78fad382aa skip failing test on win32 (#114248) fd0a3a12e7b Update wrapper class name for paramter hints 8f384b51a93 Fixes #114204 - always renders the input box 27b824b32c8 Adds ability to pass remote/refspec to pushTo cmds d076ee1b943 Adds force push mode to push api 02380e70149 Removes repo hint from args 7f489f589d8 Hide warnings for settings groups that have dynamically registered settings Fix #113747 d7d5f20047c Fix #114218 145bcd3a732 Insert new code cell should always use available languages. d536903a2b0 💄 d88b60ceca6 languages in notebook document metadata. 8a2b9e9047d trees: add diffIdentityProvider for efficient setChildren updates b6435bc4240 Remove unused import 47a135e715e Rework opener api proposal 6184addcd1d fall back to homepath if home unset. closes #112775 b3d57e69b02 Update PHP grammar, fix #113185 92833fca559 fix #114233. 04efea43fa3 testing: peek diff test outputs 989f2eb812e setImmediate => setTimeout 02276814922 Add new external uri opener service 22c88cfaaeb Batch ack events coming from client 3232112f9ba Only resume if it's paused 60e46eb8756 Delay animating until content is prepared to prevent weird flying elements. 0738f76daca pull themes from the marketplace 0a19f7702a9 Rename ackId to charCount bf52d50a0a3 Remove ackId from data events going to client 7aee462b8a3 Use char count instead of ack ids 7e5c01208dd Start of low-high watermark flow control 69a6e6ac937 #113757 show panel move and hide actions only for panel views 3a4dcf4890d Fix unit test for Win32 release (#114212) a04802f5865 #113757 show panel move and hide actions on view context menu f29502563bb #113757 allign reset location action f1ee68fc468 add tests for RELATIVE_FILEPATH snippet variable c6c7ddd4437 Merge branch 'master' into tyriar/flow_control 6430ee1efce Basic flow control for ext host processes 9d39f4e6cb7 don't auto insert semicolons 169269a3f07 fix tests 3767f97bc32 Adds onDidPublish to Git api 8832366467e Closes #110881 - adds possibly rebased warning eba4da27278 #113757 show sidebar actions only on sidebar views 2e279d37e7e Property preview text wraps lines in debug console 554ae13fa9a Fix address for port open attribute Part of https://github.com/microsoft/vscode-remote-release/issues/4046 b7b36bb1908 remove some tests 9ecba1b468e Merge pull request #114039 from microsoft/isidorn/bulkFileEditsUseTextFileService 1e9b86da1f9 Finalize adding a cancellation token to resolveTreeItem Fixes #111614 161ce44ddae Azure DevOps - Move release into a separate stage (#114205) d3e4bdb6177 Merge branch 'master' into joao/wsl c644f3788d0 revert wsl and distro 3a1c42c150e textFileService make getEncodedReadable public 67f9988bdc4 Support to define additional attributes for ports Part of microsoft/vscode-remote-release#4046 53be807cb4d throw nice error (and prevent stackoverflow) when instantiating services recrusively 3653f34dbab Do not instantiate hover widgets in the `onModelDecorationsChanged` event 0a28ec7fb14 fix #37570 add RELATIVE_FILEPATH snippet variable 868271067e6 filter perf marks that don't start with 'code/' 675638196d2 debt - remove duplicate drive letter implementations 4816a253eaa Revert "use PerformanceObserver in node's perf-util" 05c4659e096 use PerformanceObserver in node's perf-util e500f76d9cc remove test dependency on theme extensions 0324150670f Merge branch 'master' into isidorn/bulkFileEditsUseTextFileService d88c1b4a64c Merge branch 'master' into isidorn/bulkFileEditsUseTextFileService 22bd999e86b debt - use provider extUri in file service 4b3ab7048fc 💄 b90166177bf reuse stats collector for EchoRunner, fix missing titlePath-property, fixes https://github.com/microsoft/vscode/issues/114190 7a8c7f57312 activity bar - use IAction in more places b5b160e015e activity bar - show a "Hide" entry for accounts and home indicator (fix #113757) 7ab5c2a90ae activity bar - consistently show right click menu everywhere (#113757) f675564c5dc fix #114028 e17aea136d3 Fix #114189 - disable caching b9aaba047c6 activity bar - remove "Hide" from left click menus (#113757) 2b0132d09f1 activity bar - update order of entries to reflect visual order (#113757) b33b28dd078 Activate onStartupFinished (#110031) d61eb64745c activity bar - change visibility of entries to checkboxes (#113757) 6dc779565e1 🆙 distro 913fff96a3c testing: fix error when test view is hidden after showing f5665378fd2 testing: start of diff peek view 09d99f7d71b resolve kernel providers and kernels. 732d4ff89e8 Make PowerShell 7 default if available and show in choose shell menu (#112768) 74038b7e0d8 do not use file scheme c88ab9e0b63 use in-mem fsp - remote folder config tests 506ae4a53e7 use in-mem fsp - multi root workspace config tests da3a21ee4e6 Merge pull request #112602 from microsoft/rebornix/output-view-model 041a5c3b6b9 fix tests - do not use file scheme f92251d8e61 use in-mem fsp - workspace folder config tests 1e44ae5da86 Merge branch 'master' into rebornix/output-view-model 03450bf0941 Update Codicons: Update '+' modifier location (fixes #114016) 84f2cf6449a use in-mem fsp - workspace init tests 722a6664f84 use in-mem fsp - workspace editing tests a2efefd3713 use in-mem fsp - workspace tests e3b18fa3efb testing: add filter box 676bb6b100e Merge pull request #114127 from shskwmt/fix/113603 990906a1655 Adopt strict assertions 00a781f926e debug: use mnemonicTitle and avoid dupliacte registration c38c1f497f2 use in-mem fsp - workspace folder tests 42221c900ba Set override to false when reopening editors after dragging them to a different editor group. This fixes #109000. (#114093) 31e33c478e5 Fixes #114042: Use Buffer only when it is available cef7004a46a activate search result extension onLanguage:search-result #110031 39619a136b6 minor polish e8fb4fd30da bulkFileEdits: use textFileService only for creating empty files c85297669ee Move id, label, and options to authentication provider registration e9ae0082963 use in-mem fsp in tests 3f3e35bf17e Add boundary for right arrow typeahead and fix bug with resetting Terminal (#113863) 61c6334a3f8 Fixes #112373: The hover should always consume mouse wheel events 3d500ebd8b4 Adopt proposed `CancellationError` (#93686) 5c1543b556c File name in editor tab reverts casing on save (fix #114096) 76c22d48c82 Merge branch 'master' into fix-semantic-highlight e149bdb42ac Merge pull request #113837 from HaoboGu/HaoboGu/issue113404 1551d1f1ff0 Fixes microsoft/vscode-remote-release#1485: Make sure to only render Reload Window prompt once c9bae24fb70 More UX feedback 7cf2ad082f9 Render remote name when reconnecting cba1d1b1848 Prefix all `performance.mark` calls with `code/` 64947067ab7 💄 unit tests 533d094020f Allow logging FS access with stacks 8ec95fa3b7a tests - improve ext path tests 55bd92dd538 tests - extpath tasks are flaky ea7b8ddda3e Can't open, rename or delete files that contains ":" on linux (fix microsoft/vscode-remote-release#4227) e3f5b3dfe47 Merge branch 'master' into HaoboGu/issue113404 bd5c20448c5 Merge pull request #114129 from microsoft/alex/configuration-editing-tests-improvements c173fb7d72a #114144 revert showing cached theme icons 088304c9968 #114144 - Do not cache only uri icon efb833ab7c7 Merge branch 'master' into HaoboGu/issue113404 5755d943ca6 Tests must be compiled even when `yarn` is executed acb0a35629d cache icon paths in web 73b4dabb2d4 Make lint happy d1cfec44472 💄 8b288893a92 Merge pull request #114101 from shskwmt/fix/113807_parse_args d541d7c64c6 make SubmenuAction strict: don't allow changing its properties, make it not disposable ea756907598 - Make cached configurations not disposables - use workspace configuration disposables 31a53bb2427 💄 43310230886 Merge branch 'master' into signaure_arguments_label 175e2c0b1d1 `yarn` is already installed (fixes #114140) b57739f4a24 tests - more use of getRandomTestPath 64a14963f7b Expose actions to duplicate editor groups (fix #114132) 60bc00ff63d webpack config typing fix f6bbc8b68d4 update tsec tool cfb2ad879a3 Update src/vs/workbench/services/configuration/browser/configuration.ts e25cbb45e7a Dispose all Disposables from tests (fixes #114125) 2fd00ba9fef Add a way to troubleshoot fs calls 57c405c24c3 Change reason for moveWordCommand to CursorChangeReason.Explicit 7c3aacb40aa Add a mechanism to track disposables from unit tests 11ac71b2722 editors - cache previously used layout and return it 03cb2d2a236 Dispose `PieceTreeTextBuffer` instances e114a24d9f9 Improve usage of Disposable e71f31abe9c editors - copied group is missing to register editor listeners 313f4bfecdc fix #113620 db701d281f7 Fixed not to skip determination of option type starting with "_" 3ceb3a100ed tabs - improve logic of previously used dimensions and relayout 6bd7b70515d Revert "Enable webview tests (#114059)" 0a3a9ce7bb9 State of tabs is not fully updated when toggling workbench.editor.wrapTabs (fix #113808) b0e96922417 tests - selectively enable some previously skipped tests ea1b3f27db4 Fixes window border causes webviews to be positioned slightly off (#114061) 01c6003c295 Enable webview tests (#114059) a12a996d780 Retry idb tests. Ref #114025. 7a7d11fcc6d Merge branch 'testing-group-by-result' 5f2036033c0 testing: improve projection logic, add state grouping e3509b62fe6 Add search.mode option to control default search experience (#114015) d110d503425 Remove webviewHasOwnEditFunctions context 50dd2dd3f9e Add context for when the webview supports find d8a3dd44be1 Removed unused param 0fafaab62e2 mnemonicTitle in native menubarControl d95e22d0a8d make menubarControl prefer mnemonicTitle, make MenuItemAction only implement IAction 8d8ee957418 options for getActions() are optional c88c207e6c0 fixes #114028 6828ae1ab50 Removes trim & fixes regex c45eac1a819 tests - use explicit skip over handling within test 8d46328a407 more 💄 832afd1276d 💄 15cd2a1abd2 #115025 hash the uri and create css rule aa5064d4fd4 Lift some tests to browser (#114041) d6a63fc79ea FS improvements for unit tests (#114026) a2251a3b6b9 do not use mnemonicTitle for all action titles, #102361 3898af5db3d typos 10592747998 refs #102361 mnemonic as command model property 8ae693bee2c bulk file edits: make sure to use textFileService when creating files bebd0664073 Fix gulp task provider so that it doesn't always try to run 29e0cfd8beb Always elevate (if needed) for openTunnel API e7c84aab5b1 Fix privileged port elevation flow from UI 61187660af3 Fix #114031 114e38f175e suggest - add min height when persisting widget height 2042a0e4c23 Add new terminal link text for tunnels (#114033) 174259eec8f Log when lsof fails and return initial fe175afdb80 list widget should not remove rows from DOM when reusing 91a0d07f3e7 Improve `canTunnel` Part of microsoft/vscode-internalbacklog#1709 288e8c233a8 Fix #110525 5ed73f6e850 don't theme icon for MD elements 6d2e0aa21d3 rename tsc config file for better intellisense ec4c9f4c8f7 Merge pull request #112833 from homebysix/list-extensions 7b16f15d005 Merge branch 'master' into list-extensions a5a0c1527d1 add tsec config and exemption file (defunct?) ca6a7a69989 💄 5adcd2521e9 Fix #113257 ed6c343edb7 gracefull fallback for TrustedFunction 44c9b4bb7f3 use TrustedFunction workaround when loading extension sources inside web worker eb940d4ed6d Fix #113988 adc68dc3561 Add `canTunnel` to tunnel service Part of microsoft/vscode-internalbacklog#1709 128987f575e remove duplicate step 4c42e6c111b Fix #114013 35766c616cb #113757 show sidebar actions also on view title context menu e4dc7b4d796 Clarify OpenDialogOptions note (#113831) (#113998) eb409622888 tests (unit, electron) - set forbidOnly when running on build machine 691da329d66 Revert "refs: mnemonic as command model property #102361" 96e2981c91c skip failing test (#113882) 82dc292811a Merge branch 'master' into HaoboGu/issue113404 0949d5b794f Remove unused var acda4aed821 Make the external opener a two phase process aa73c2d435d Fix random focus lost issues on CTRL+1/2 for a webview (#111676) 045b0fc4c09 Fixes #110509 - handles markdown escaping & spaces 31d5e48d92a Fixes #114002: Finish writing any outstanding messages before disposing d36b3616e70 Change Emmet to onStartupFinished #110031 b041f460ce6 Show a disconnection dialog only after 40-50 seconds 455b029ad1a Render "Reconnecting..." in status bar and use "Disconnected" only for permanent disconnection 5d9e867aa4f refs: mnemonic as command model property #102361 3dc0203e021 testing: auto reveal selected tests e2c305f3a3b Allow registering additional external uri openers bdf57b45ced Remove button background in simple browser aa85ab9d03e Make sure we also log event when creating a iframe based webview d964664da29 Disable dynamic cwd resolution on Big Sur d68056d9072 Improvements to batched testing. Ref #113911, #109271 8c3f5dd3fad Support to start multiple debug sessions from a single launch config 80f369b7bee reduce number of entires in test batch. ref #113911 2b20162d227 Avoid hostname resolution in lsof 70e37bec1be Fix #113920: Codicon => ThemeIcon 16452c54f38 Merge pull request #113938 from microsoft/alex/terminal-exthost-improvements 98cc02c097d change default zenMode.restore to true bbb0aadc87d enable trusted types by keep a yelling default policy for a day to two, https://github.com/microsoft/vscode/issues/103699 23ac286dccc #113975 use insance to remove svgs tags e803459d4ad fixes #113921 8ad08b04f5e Do not compile `/test/` and `/build/` scripts during postinstall, the scripts get compiled explicitly during CI fa701a373b7 update references viewlet aa48a4eff7b `monaco-compile-check` is covered by the GitHub CI b1877cd33e2 Merge pull request #112033 from solomatov/error-handling-in-terminal-start a7cf03de2db Add elevation message to ports UI (#113990) efd298ccbdb Fix #113760 a78fffbdb01 remove unused eslint mocha 72572c59cfb bust the node modules cache 578c3d5374e fix #113781 d4c32800737 tabs - polish how to detect that scrollbar needs update 683a30f74c4 Revert "better fix for https://github.com/microsoft/vscode/issues/113852" 7222c005ca9 update loader, event better fix for https://github.com/microsoft/vscode/issues/113852 c1930b6baf6 make default policy strict, https://github.com/microsoft/vscode/issues/113975 cdb373186cd refince CSP for trusted types but don't yet enable it, https://github.com/microsoft/vscode/issues/103699 a9dc6d28fde use default tt policy to workaround electron webview innerHTML-usage, https://github.com/microsoft/vscode/issues/113975 d5fc23ce6ce Wrapping tabs: editor toolbar bleeds into tab when space is limited (fix #113926) 14bb2fdc128 Tunnels from a tunnel factory can have async dispose a84603f49ff fix condition f2dd0954925 add (disabled but almost ready) CSP for trusted types, https://github.com/microsoft/vscode/issues/103699 4aff4b99239 trusted types - loader should use trusted script url when using script tags, https://github.com/microsoft/vscode/issues/103699 de9e9c414ef fix path in tsec-compile-check df10825f69e fix yaml 5e673678ebd Merge branch 'joao/build/single-compile-job' 575f87306f9 Merge branch 'joao/build/esbuild' fb4a88e4037 rename ab3297dd136 only run terrapin on cache miss 11b79ba7ebb parameters d495358b01d add parameter display names d944b91cd1b remove no-exclusive-tests 39810d812ef Sandbox: adopt forcefullyCrashRenderer when reloading unhealthy renderer (fix #112485) 2b7435c389c window - focus() window that opens from protocolHandler af5adb530a3 Revert "add arch to cached data path, https://github.com/microsoft/vscode/issues/113852" d687818f8e1 better fix for https://github.com/microsoft/vscode/issues/113852 2d114755e83 update distro 4149b09417d parallelize eslint and hygiene in product-compile a4f9970924b Merge pull request #113826 from nrayburn-tech/issue-109438 74bc1d2672e re-enable test for https://github.com/microsoft/vscode/issues/111867 c6ceb1ab2ea isolate eslint from hygiene 519f8691bad fix typo 935cbe6aff3 update test cases 3759568789d support more unicode chars in isSeparatorAtPos 685999bcf35 Merge branch 'master' into HaoboGu/issue113404 e269e5e2c6c revert back using switch for isSeparatorAtPos, add several cases f3b2680ee3a Merge branch 'master' into alex/terminal-exthost-improvements 01089c0a505 testing: fix unit tests e2c91378410 testing: fix unit tests 59091157571 testing: code lens and diagnostic information for tests 3d8888779d9 Fixes #112446: Avoid timeouts in mirroring terminals to the extension host by assigning a temporary UUID to terminals created on the extension host side f1151f84ff7 Adds userAgent to clone, pull, fetch - #111909 Changes to use env 6802a656e26 Use cast instead of generic 271d9b8c007 better hygiene task definition 809d2f63d0e Added show options to simple browser open command 2fed7ba374d Adding settings to control which schemes simple browser is enabled for ba67d1bea44 Add more explicit type for TS 4.2 af6d164f73e single compile job cb67fffb94b improve hygiene glob patterns 27e26536f12 💄 e4fe157544f equal => strictEqual f489602633a Merge pull request #113919 from microsoft/isidorn/workingCopyFileService 4aca944132c make sure to not fire any events for empty opertaions array 4f109404604 minor polish de8b6772761 Skip batching test due to failing on build machines. Ref #113911. ac10e57f6cf fix: The git commit message field is cropped with negative zoom (#112316) a7267aa0935 Update distro e8edff5eb7e xterm@4.10.0-beta.39 3259985c7af rename random_uuid to just uuid 1ace7e34995 remove console.error on commands for noisy tests 6763d82fdd1 also filter before debouncing when menus change 6c12d89415b 💄 9293f64e937 :perf: first filter and only then debounce event handling 43aebefbf62 use Date.now() in stop watch c8d91038302 💄 39dbcfcfbce Set remote.restoreForwardedPorts default to true c6cc7d61401 workginCopyFileService: only one event for multiple operations 4d4b9225d2c Fixes #113917: Add square brackets around ipv6 addresses 83b4d6c8ce0 💄 7a27b248841 fixes #113815 8389f072696 Azure Pipeline - Adopt pipeline parameters in favour of pipeline variables (#113902) bb4cbce9699 Revert "publish linux builds" c49ef6df61d [html] update auto-rename-tag to linkedEditing migration 4fe3f75c6d3 Use `nodeSocketFactory` for tunnels for now (#113914) 1228854b4ae Adds support for gulpfiles using ESM. (#113505) 169a0ec047f sandbox - allow to enable vscode-file protocol via argv or environment (#98682) b1659198f62 fix incomplete stub, fixes tests 448d0497e68 Revisit how activity bar items and status bar items can be hidden by the user (fix #113757) ca2e7d8527f publish linux builds 0cb7dad36f0 adopt creation of N resources at once, https://github.com/microsoft/vscode/issues/111867 b99e9bc2990 apply file edits in bulks of equal edits, https://github.com/microsoft/vscode/issues/111867 841f6c9938e align source-map dependencies c8ef4ecd835 remove deprecated settings sync settings 27ff5760893 🆙 playwright f054767eb4e remove unnecessary line 22b9a2b1e8b update esbuild f8a07fa6a9d Revert "build on mac11.1: upgrade version of playwright to 1.7.1 (#113906)" 63a0638d4cf build on mac11.1: upgrade version of playwright to 1.7.1 (#113906) 983bd69effc Update problemMatcher.ts (#113834) 0402f76ace4 Workbench has white background, then flashes black, then flashes white again. Fixes #112816 c6a1eda3315 themes: add ThemeSettingTarget d51e1fa4718 workingCopyFileService: create and createFolder support multiple resources e153ed6b3fc 💄 16da2c5f0e5 change create, delete, copy, and rename operations so that they can handle multiple files at once, https://github.com/microsoft/vscode/issues/111867 fa593d83ad1 use vscode-tsec instead of tsec 007eb56ca84 yarn.lock leftover 6503475091f chore: bump chokidar@3.5.0 (#113886) 72095f86036 add arch to cached data path, https://github.com/microsoft/vscode/issues/113852 5ed76e3da7b Merge pull request #113842 from nrayburn-tech/issue-113809 296ba5464ba Remove obsolete chrome debugger recommendation aaa8fa92c67 empty f1a0aa9378d Fixes #113866 - removes transform optimization 9b6aaf1e86c Fixes #112481 - missing refs (because of trim) 4167837cb85 Show hover for comments, fixes #108396 dc5a3da3abd Upgrade to latest Emmet (#113848) 6f56b47c696 fix typeahead regex for move (#113850) 98f1ed6c758 Fix rewriteWorkspaceFileForNewLocation test. Fixes #113762 20950d65268 testing: update old import cfc8c5d3d77 extension webpack: do not copy .ts files as resources ed3989b069d Add some recovery from a missing compositionend event (#112621) 2c5c0a3be14 testing: fix loading indicators, add progress during initial test discovery 2112a99fd9d testing: migrate from actions to menu contributions 52bdc14cc6d Copy of translated errors for js/ts web build d29388d2554 Reenable test, fix #113768 485c5fc0093 Revert "extension webpack: do not copy .ts files as resources" 3aa41899aaf Unable to change to another theme if the theme file does not exist. Fixes #113661 66482b368eb Sequencer.queue: support failing tasks (for #113661) 63deed1c6e0 💄 41d01ec14e9 don't leak emitters of context key services 87d2b3d07cb add support for event profiling 45f79f85735 Scope gitignore out* pattern microsoft/vscode#113823 9be7f7fb655 file name incrementing for files without extensions ced3bb4bb9e Secrets API feedback 037708a33f6 Avoid textual codicon references in gettingStarted Fixes #112657 c8fbf3aca54 Fix #112735 0319fedae10 add lint rule for missing cancellation token in resolve and provide methods, fyi @alexr00 please remove surpression comment eed13efcc36 fixes #111413 d0f68b3ec9a IndexedDbFSP Perf/Correctness Improvements & Tests (#109271) 76dd27c3be1 fix https://github.com/microsoft/vscode/issues/113829 064fc7a5267 api comments, fyi @RMacfarlane 265bd0b5b9a Open Editor Sorting: fix issue when untitled editor changes name and list does not resort c1274981145 Fix #101738 3f435ff6c1f fix #113404 ab1aeb6b73d extension webpack: do not copy .ts files as resources 0a3e23a5b2f new html settings not it in the settings UI c41302c5ab1 Relax worker.onerror after a successful worker start 6c95b041ea6 test: add tests for #113403 c907b8fff85 no vscode-imports b99faeeb3ce fix minification target 51ea16966b6 💄 remove appendChildren infavor of append, fyi @bpasero c46eca1dd34 Merge pull request #113518 from nrayburn-tech/update-dom 37b0d344c7b add a RANDOM_UUID snippet variable 2d1b63d6a3e Fix showing views submenu when view is merged with view container and view has secondary actions. 48dbb328998 fix https://github.com/microsoft/vscode/issues/113819 e8ad195f3e0 Revert "revert pool" 13e313c2b58 fix compile and hygiene cache miss f06ebe74253 💄 f90c518b03c debug: remove enableBreakpointsFor since php-debug now moved to new api e008e41d27b fixes #113242 0652b9cbec2 debug toolbar docked actions only appear in debug viewlet 750948b7b5c fix hygiene as well dd9e52a40d9 libs a96a29b7535 pkg-config 035e15b7712 revert pool cefe06d375f build-essential 09e281c091a Fix #113732 7449d86b89c use esbuild for minification ded513b20b2 Make cancellation token in resolveTreeItem required Part of #111614 7814ffc41ec Fix #112663 699d736d785 distro 82b99b3286f skip flaky test (#113620) a9ed4e9b0a4 Fix quick input button height Fixes #113745 c4aeb68a68a debt - introduce and adopt flakySuite 174bfe9b528 simplify gitignore 008f8dcdeea missing compilation 503a2458dc4 Merge branch 'joao/build/agentpool' b5ccd30c95d css - less generic rules to prevent leaks f64cf2922f9 Fix remote explorer views getting changed across windows (#113237) c4ea0b55906 fix some spelling mistakes 6659f8dfe58 use compile agent pool fe795313d8e Revert "parallelize hygiene" bdbd644c27d parallelize hygiene a1760b1a6c2 Merge branch 'master' into update-dom 998e5e2ea67 onDidChangePassword -> onDidChange in secrets API 1bb2ae0e365 Allow ResourceCommandResolver.getRightResource() to return undefined (#113364) 7db413d4c10 Move secrets API to extension context a48ef56fbf7 Fix compile for current TS version 3ed300eb9db Add simple browser extension (#109276) 69dfa670ef1 Fix compile error if using older ts version 4d8895c7b72 Just kidding, keep proposed onDidChangeAuthenticationProviders API for now 942c3bad6b8 Sort contribitions b565c422aa3 Add find all references command for JS/TS 0f9ee988467 Remove deprecated parts of proposed auth provider API 13317a96944 Merge pull request #113618 from shskwmt/113318-diff-empty-files 87c2cf1b590 Merge the Monaco Editor job into the hygiene and layering check job 604e2466d90 Merge branch 'master' into 113318-diff-empty-files 48742bd3a10 Update ts grammar pinning tests 3bdf2825d07 parallelize 79fd01a78b4 use yarn task again 74623bc93c5 Update JS/TS grammars 2b040e87633 Unskip tests Fix #113761 714f85fc189 update build pool fee7cdacf72 add provider naming rule 4649e1205f0 fixes #113725 726acc51308 use vscode build agent pool 9d5f04fa0bd #100700 remove the skipped test e4bb3ff7295 fix #113217 414a4c0f511 list added view descriptors in ascending order in the event 8a0058b9e3b Merge pull request #113549 from nrayburn-tech/issue-107028 fc4b40b6338 fix type casts f4ab083c28e update todos ca370bdb0ae update my work query f93a2b62ef0 fix cr issues 00181ad8951 Fixes microsoft/monaco-editor#2292: `model.dispose()` should work just as well as `modelService.destroyModel()` f02af16530c Remove sync property d883d379d11 Merge pull request #113303 from microsoft/joh/toc ceb8da0be04 tabs - disable badge decorations for compact sticky tabs that have fixed width 4f34edadd65 Merge branch 'master' into joh/toc b62ec5c0eeb move shared config key into workbench layer dce7b0cd63b simplify outline model again ea51fb1bddf fix tests b948e42373c 🆙 distro 64eb716d57e env - fully qualify our own variables c03bc427cf7 some 💄 and refactorings 1e5b337c02b move document symbols command to right contrib fd23a8e3280 Have condition of test publishing match the condition for test execution 8986870317a Merge branch 'master' into joh/toc 9b66dc4ad2c debug console: to string of simple values should duplicate value for each count baf15f1041a Allow tabs to wrap to multi-line (#106448) 8ed509056a9 Merge pull request #113710 from mitsuhiko/patch-1 0490bb1e9ae Merge pull request #113716 from noritada/doc-fix 5bf42c9acd8 Merge branch 'master' into joh/toc b6c601b4fc8 Remove duplicate 'the's 8fc5e370f65 Fix a typo in a log message in extHostCommands.ts 98106c48a07 No need to create fake workspace folder for query builder Fix #111348 3283ade7649 Don't use 'expandPatterns' for workspaceContains search Fix #110510 da4784eaa84 Don't miss creating a new default terminal when reconnection is disabled Fix #113564 4e7e21233e3 Have `computeSync` return an array of results 5edb6102629 Extract all MarkdownHover computation to MarkdownHoverParticipant 408539d8fa5 More cleanup 18982d441bb Fix compilation error d3b643c8a48 💄 923f34a80d1 Extract `MarkdownHoverParticipant` from the editor hover 2f817caf6e7 Move more marker specific logic to markerHoverParticipant 28795976207 Extract `MarkerHoverParticipant` to its own file 765947c205a Extract marker related hover logic to `MarkerHoverParticipant` 7e7775705ee Fixes #113318: Show having no change when diffing two empty files 72420829833 Fixes #112834: Ensure the markdown link provider is registered before invoking `vscode.executeLinkProvider` 262a7157ab5 revert webview preload changes. 56c808a66a9 Emmet flatten DocumentStreamReader (#113602) b84858babef Emmet remove dependency on vscode-html-languageservice (#113599) 94facfcf06a Merge `ModesContentHoverWidget` and `ContentHoverWidget` 3564f180616 Fixes #40926: Inherit visibility from the previous line 95cfa9ede4e Fixes microsoft/monaco-editor#2276: Check pixel ratio after each render 19b5e736fa7 💄 689fbbd9607 Increase timeouts 5cc0aa28496 Add support for including line feeds at the end of lines (microsoft/monaco-editor#2265) 4a121608e8c Add test for microsoft/monaco-editor#1235 92d4b14e293 Update rust grammar afb6a0c56ef Fix CSP 15561c41399 Emmet polish 15ba9aee0e9 Emmet improve Expand Abbreviation perf (#113558) b5cd082cd47 Emmet refactor toggle comment (#113557) f1ea605a695 Use blob urls instead of data: to maintain current origin e6daf340852 Better simulate real-life CORS in code-web server 58852eaa854 Add a timeout to the editor tests step 5ea96ec9cd7 Fix `_colorMapOverride` usage before initialization 67bff68034c Add `monaco.editor.setColorMap` 433833fbe02 Emmet refactor reflect CSS and update image commands (#113550) a6bb30b41f7 lazier loading of windowsProcessTree c1bf6e0307b no need to update api 05be32f0551 turn on renderer view 7c11754ad4f avoid duplicated text model. 6a7f07f8b61 update height without scrolling the view ebb316a2881 Fix incorrect icon hiding for files in tree view 5dbfe32be31 Allow tree item command to be resolved later Part of #110498 3a70241a0bf Merge pull request #113536 from microsoft/alex/build-compile-no-container 3e945d092c2 Trigger build 321b407de55 No need to use containers for compilation and hygiene jobs 5b75a42575f Cancellation proposal for resolveTreeItem d746f2d2772 Fixes microsoft/monaco-editor#2220 0dc7faff87e Fixes microsoft/monaco-editor#2222 cbea242dcbb Fixes microsoft/monaco-editor#2236: Avoid using `wrapper` as a css class name 7c937a7a383 Fixes microsoft/monaco-editor#2237: Add API to register commands 0439aef7b3c update dom to use newer methods c44b7d25d91 Refactor Emmet merge lines and select item commands (#113516) c7dbab59ff4 Emmet create new html-matcher override instead of using LS (#113508) a1ea4df9596 Empty output view style update and layout change 4b6280aa8ce Skip webkit 9945754a620 Add editor smoke test (ported from `monaco-editor`) 4df5d59e021 force update metadata diff editor for the first time. cd836bb54f6 Fix process explorer styling issues, fixes #113399 3c518e43d39 Update distro f19eb28477e Avoid installing typescript 2ca3e67f32d Rearrange CI jobs 802a36b0970 Add typings validation 4df5991023a Adopt latest setup-node action cead2666633 Align all yarn caching steps 2a8140c5e8a Let debug wait for tasks to get input Fixes #108443 ffef9abe924 Hide auto forwarded port notification 82fe1e7d0df Avoid touching passed in options object (fixes microsoft/monaco-editor#2210) and avoid deep cloning overflowWidgetsDomNode (fixes microsoft/monaco-editor#2184) da8549b7323 Merge pull request #113376 from microsoft/alex/use-builtin-cache-action 4804bbcdff7 Tunnel factory can return undefined (#113232) 1c0efed5a67 Test cached node modules 9c9e1075826 Fix semantic highlight scheduling 413b5d47057 Avoid ts changes b4789ecf849 Fix typo 2b380bf8c34 Support whitespace options d20f8ed37d4 Add style controls 4b3d54ceb32 Avoid changes 7222b357f75 Fix cr issues d26dbae6cdd Adjust request schedule 0c697b2e334 Merge branch 'master' into alex/use-builtin-cache-action ddb88dac9b8 Avoid touching continuous-build-* 4248e3f7e82 Add Download Playwright step 2697a42ee71 add range WIP 2db89c75e6f rename to inline hints 1954e938504 Adjust hint label styles df24d0153d8 Trigger a build to test caching 1b713df9b61 One more try 941b3513c91 fix view state being stored after picking an element ff5245ea45a Enable playwright debugging 0d671ccb2a7 remove unused context keys a747b66c1ec naming: Outline -> DocumentSymbol when it's a symbol, some cleanup 86dd04ecfc4 fix some outline settings so that they are also language overridable fcba2ef5891 simplify filter updates 61965e6bc50 Use fast 7z compression level 674877fc173 properly implement `revealFocusedFromTreeAside` command 5162c8e8563 Add "Loading..." to custom tree hover Fixes #111615 4468307af3a Fix themeIcon + resource in tree view Fixes #113374 ed87c35de9a Show more port cmdline when wide And add pid. Fixes #112796, microsoft/vscode-remote-release#4120 0b1892f877e Start candidate finding later (#113377) 5b9ea8d3780 fix/workaround rendering issues with codicons and quick pick 02b72216d7c Merge branch 'master' into joh/toc ce02917f666 change cell uri fragment format so that opener service doesn't interpret it as line number, also throw error when trying to resolve a cell as notebook, https://github.com/microsoft/vscode/issues/113307 7b6bca0bf59 modes hover must not bread fragments, https://github.com/microsoft/vscode/issues/113307, fyi @sandy081 bbaff3d568b Adopt `Cache@2` for node modules caching 97ae453378e honour outline problems settings in notebook outline 88bafd443d1 Merge branch 'master' into joh/toc d24ab0a201a Improve comments and code style ff8ae0b93ff Avoid changes bf4e2371d4e Avoid generated file a6fd2cc1088 Use utils type converter caaf2a07a94 Merge pull request #113341 from microsoft/alex/node-modules-cache-key 8b7c6622339 also use outline view state for qiuck pick 4140affee2c breadcrumbs picker must restore view state when being dismissed 7cc87833199 trim MD headings syntax from outline element adc8c296ee8 move more things into outlinePane-land 1b8be429cda properly cleanup notebook outline marker b884f75fa6f fix stale breadcrumbs issue cb020e68a04 tweak (reused) rendering for breadcrumbs 4fa97186146 fix and tweak sorting 9c861dc5fd5 update outline as soon as it becomes visible 871f167341c add IOutlineComparator as concept, remove `outline.symbolSortOrder` 68257573641 More tweaks 382a8740a91 Fix that `VSCODE_ARCH` is not taken into account on Windows 40fb699b6f4 style tweaks 63acd85f702 render markers with outline elements 7728010c73b Invoke `mkdir` with `-Force` 05a5209b4c5 Fix candidate port finding (more async, better timing) (#113342) f23ed65688e Compute node modules cache key in JS to avoid globbing a5360f21b81 Merge branch 'master' into joh/toc fe70487f14b 💄 d75115ee9c7 breadcrumbs - make sure to dispose current outline when editor changes f39f31d2ca3 protect breadcrumbs widget from rendering bugs c459ca37441 Merge pull request #113332 from microsoft/alex/modules-list 3de96fd2372 Simplify code b7a5fcdc6d5 show a default entry when a cell is empty ea633831d49 workaround https://github.com/microsoft/vscode/issues/113333 07b28e284ba Bust the node modules cache 76c974bfebd Have a clear list of directories where yarn should be executed 1d7fb0e757b notebooks quick pick should contain all elements 698ed864114 fix issues when user state changes 25709313284 make notebooks outline a tree (using folding logic), also fix notebook outline icons 9f5cfc246bf Add dummy support 434f63192e8 Revert "Avoid generated files" 96b889a113b pre calcuate output height. ec3f4088e71 restore view state df64bfe7f7c avoid view state npe f98fabae6ce Merge pull request #113279 from microsoft/alex/remote-websocket 9a7e8372ea6 update distro 102e69c975b Merge pull request #113311 from microsoft/alex/gulp-lazy-load da802ca8909 style polish 98e05820b89 update distro 1ee7a0e015f Merge remote-tracking branch 'origin/master' into alex/gulp-lazy-load 1630db29bf8 indexOf baac11d5f58 Merge pull request #113296 from microsoft/alex/gulp-no-respawn c1eb24b027f Load expensive node modules lazily 11e600ce2c1 remove console.log d14c8de672f event dispatcher for cell layout. 4afc1ee4406 retore awol feature and fix tests with that 52c1cce2597 Add controller 6fa83ab26d9 move deprecated style into IconLabel, move/rename outlineTree to outline 54da36d181b proper disposing of outline objects d7644dc25ad replace IOutline#resource with #outlineKind a54c02aedd4 add setting: outline.symbolSortOrder 515550212b4 move sort order 088b21038e8 properly layout tree 661c741c302 make sure outline is all expanded 277a8262e0e Avoid gulp having to respawn 310a9ff90fa Merge branch 'master' into joh/toc 22c5527f96c fix compilo 9699993f161 use outline service in outline pane cfccae30dbf Fix layer breaker fd8b68457b5 Exit immediately when a cycle is found and running on the build 9c2a1dc473c Don't restore ports that are already detected Part of microsoft/vscode-remote-release#4112 741a568bfd5 Avoid generated files 8476ff1a9de WIP d2ee88ba3fd add config per UX (breadcrumb, tree, quick pick) 1922771f2e8 move delay "after big change" heuristic to new outline model 1478078ee30 Update task services doc link (fixes #112591) (#113170) 445f259e34c Add sorting to npm scripts (#112725) 297567be0c1 move document symbols breadcrumbs logic into its own data source f2fd0ec094e Use the browser's WebSocket for remote connections 17573d22216 move outline view state into its own file ca08df3de54 fix compilo 1844c541870 testing: forgotten push to enable debugging 84903a3f400 revert outputs should trigger output rerender. 64c38324e65 no outputs to render ede4de744d9 vertical alignment 23658cc8753 empty cell outputs placeholder 597ec5f0573 padding polish for mimetype switcher d345d1bd827 mime type switcher 8b23b938a38 split point takes renderOverviewRuler into account cb5f9b5294d Merge remote-tracking branch 'origin/master' into rebornix/output-view-model 6f11d34f677 resolveNotebook API command takes no argument 9ac5131833c Have the `TunnelService` use `IRemoteAgentService.socketFactory` 11f838c144c fix #112747. af92a731fa0 Fix #113250 0e2a0f9013c Prompt when there is an AMD module cycle d63aa232d93 update distro e8bb7a938ee fix #113243. f0376ac1312 Add `permessage-deflate` support 609d547db1f also show cell-file icons in quick pick 7593c56fdd8 use file icon (if applicable) for cells, otherwise use default icons 5ebbd9a77cf re-use css classes for better icon support 19cf2d424e0 render highlights in breadcrumbs picker 68da4f16d67 remove onDidChangeActive-event 358f3909620 simplify model, add keyboard nav support for notebooks 822a45f6072 add outline target and adjust sorting, filtering for document symbols outline accordingly cece1a4fcf4 use identity provider, some cleanup 88c271c3f71 remove ITableOfContentsProvider, remove duplicated code, add quick picks to IOutline 4d47c40dde4 delete old tocProvider 7cc71d65361 Fix broken remote explorer drop down Partial fix for https://github.com/microsoft/vscode/issues/112750 513055e2e0d show a root element where there is outline-breadcrumbs but none are currently selected ebb69237016 reveal vs expand folder vs select folder... c51830e8efa better revealing and previewing 48c2ad6493b Temporary workaround for #112843 add8753c74c Only terminate after 3 EPERM errors dee0c84e7f0 update distro a512c86f10e Revert "fixes #112750" 57e3aba4e16 Have `/build/` compilation and `createAsset.js` be runnable independent of the root `package.json` baadb591bd0 update nb breadcrumbs as you type c6f70a3a019 💄 c2f1a367ef0 Adjust node module path 29f556a724c styles for notebook outline elements ec6087fe180 Merge pull request #112837 from microsoft/alex/node-modules-build2 a8d9a5eedc7 Merge remote-tracking branch 'origin/master' into alex/node-modules-build2 5c1ff8158b7 Avoid lookbehind (not supported in Safari) b71972bbb00 Support open in background for 'open with' f0c758bdcc9 Support open to side from the 'open editor with' quick pick 64888cafe07 Merge remote-tracking branch 'origin/master' into alex/node-modules-build2 09ca712fe7f Fix compilation errors d78c8689d0a Give browser unit tests even more time, the build agents are having a bad day 36d09208f19 Fix whitespace issues from github merge UI 72cf134322e Don't transform viewColumn used when creating extHostWebviewPanel programatically 32d935ebf4f Extract type guard 186792cadbb #27498 restore extension editor webview scroll positions (#85982) fc35c4275f8 fix #112778. 768cd308c62 typeahead: fix invalidation on 2nd char in zsh aa8962f5dcd Fixes #112353 54dc2d786e1 Merge pull request #112384 from myovan/master 25212c95eba Merge remote-tracking branch 'origin/master' into alex/node-modules-build2 563664f3491 Increase macOS browser unit test time because it continuously times out 16c2193e3ff eng: avoid duplicate prelaunch task runs afafd5e8358 Merge remote-tracking branch 'origin/master' into rebornix/output-view-model a207b50937d dispose webview scroll event when switching models. 4fa0f309ab8 webview cover. 9970299016a dispose webviews after switching models. 361877735ce 💄 71a733b4aa0 finally fixed the OutputViewModel leak eb154856a38 fixes #112366 87629065098 💄 6ad37a351ff cache metadata and output height. 11d5c625d1f fixes #112750 20831dd3df4 Keep only `@types/*` deps in `/build/` and share `terser` (#112718) 8fdb44467c7 update distro 273a5cdf5aa Emmet comment spacing fixup, fixes #112835 a8cadd39129 Merge pull request #112812 from microsoft/alex/node-modules-build b4a22eba377 recompute output height in diff view model. 6ad2dccc786 Emmet Toggle Comment HTML 💄 775bf46bad4 Adjust references to --list-extensions option ea15eb4e5ab Strengthen sameNodes check 💪 fixes #112829 94fbbb38ae6 tricky selection listening 58985749f9a memory leak e064043f7a8 wire up outline service with breadcrumbs control, WIP 202a8fa3eb0 Merge pull request #110961 from a5hk/snake d5bed1d4a7c fixes #112792 db27c552056 Adopt `ICodeEditor.executeEdits` c2044d680f4 bust the node module cache dc169ce06df Merge remote-tracking branch 'origin/master' into alex/node-modules-build da4192d2879 Leave sorting deps up to yarn 3e8b2d86d17 bring back css integration tests 6d552620316 update vscode-uri c1b988bcf86 Merge remote-tracking branch 'origin/master' into pr/a5hk/110961 2df64d27dd2 Merge pull request #112777 from microsoft/alex/prof-v8-extensions f294e4a9cc4 Merge pull request #112810 from microsoft/alex/node-modules-types ff744b4fa8a fixes #112281 7cd137263a8 Fixes #112382: Assume that control characters are wide ec9ba0edb68 debug: Focus child session instead if it is stopped 02443d02f5a Fixes #112412: update comments to match placeholders b0af35c8104 Merge remote-tracking branch 'origin/master' into alex/node-modules-types 711ec31c7ea Make sure to call done() from unit test 8c5966fc770 Merge remote-tracking branch 'origin/master' into alex/node-modules-build 75fc5cf5258 update distro 14cb2089dc2 update distro 2c4988b7639 Fixes #112301: Wrapped lines contain the wrapping whitespace in the line content 295912f7d50 update distro 4fc14314b69 Fix compilation problem 3bff49d2468 More tweaks to Windows cache exclusions b3e390baa7f Merge pull request #112760 from microsoft/isidorn/workingCopyServiceMulti c78bd5bd783 createFile and createFolder only allow single operation until there are more use cases 60c263ce1ce Merge remote-tracking branch 'origin/master' into alex/node-modules-build 318ff7e94a8 Merge remote-tracking branch 'origin/master' into alex/node-modules-types 8dc8025cd48 comment out css tests on windows 4efb4a2e8db decorations - show them next to the editor label when tabs and breadcrumbs disabled edd37076b4b Adopt new mocha types 7971d627ce8 first version of outline service, outline creators, and implementations for document symbols and notebooks db82bc13aa6 Move /build/ dev dependencies to root (#112718) f74ad9692f6 Align `@types/*` dev dependencies (#112718) 9034b769fa8 fix #112805 0adc15c4bb8 configureCrashReporter should check whether we are on Electron b069dbe0aeb Tab decorations need to update scrollbar (fix #112799) 9c30a0e98cc null guard 780ae767608 workingCopyService: create and createFolder also use IOperation interfaces e588e04b5ef Merge pull request #112803 from thebinarysearchtree/master 34f1e7ae207 Revert 0d14d3e38a8aba6e2bcd6d5dd729c4d47b3d4f97 1585a290afc Merge remote-tracking branch 'origin/master' into pr/thebinarysearchtree/112803 4db298aab63 Avoid text flickering, just render to have a height eb3cfcda015 chore: bump electron@11.1.0 d4e98289a34 [css] revert changes to test runner 5d6f7a65d38 Use IFileOperationUndoRedoInfo abf082cf74a Log more details when exiting 65c59b509b6 Merge pull request #112798 from microsoft/alex/node-modules-types-keytar 3d9d6b34204 trigger layout when resource labels have rendered, fixes https://github.com/microsoft/vscode/issues/112799 daad75c2c6b [css] update to vscode-uri@3.0 d6a6b44a130 Remove all `yarn` warnings aa2864d53f7 Remove most of the `yarn` license warnings 90f9a7de885 Execute `yarn --ignore-engines` for extensions 1141224b80f Remove debug console log 13ea3e08a1e Fix hover widget. 1324dcf085c fix #110982 63d49f6a135 don't disable the current remote resolve when bisect'ing extensions, fixes https://github.com/microsoft/vscode/issues/112473 2dd359c7153 Use the root typings for keytar since we are loading the root node module (#112718) 2c83509a154 Fixes #112666: Recompute minimap options (which hold the background color) when the tokens color change df53f46ac2e Merge pull request #112670 from chenjigeng/fix/hover-link-encode-unnecessary 98166ea0b19 update distro 0d14d3e38a8 Fixes #112391: (Re)layout the hover widget after adding async content 7f1af9efb1f remove more unused code 5e865477065 only show render style switcher when the property is expanded 141572a2b21 render outputs in text by default. d46abd43537 avoid plain/text being rendered multiple times 71d63c7f741 no transform for ITransformOutput 3337693651f dedup. 8d5b2904fa2 💄 1c2d88e68ba fewer weird as cast 6d378dbadea no more casting for Single/SidebySide diff view model. 819161c7bca DiffSide enum to replace boolean. 6dd6d4e5138 Add `--prof-v8-extensions` flag (see #112393) 681a3e413d0 :build: c927a8015b9 Merge pull request #112771 from microsoft/alex/node-modules-vscode e48a21c44bd 💄 e9abb31537a Reduce height of notebook add new cell toolbar 2292bb0283f Make notebook add new cell toolbar visible on hover/focus 25cb0d70d4a Update removeTag command d03c18661cb Windows CI: Do not cache symbol files fee6dbf4e0e Merge remote-tracking branch 'origin/master' into alex/node-modules-vscode e461782061e Fix compilation problem 5e3dfd3bb8c Merge pull request #112765 from microsoft/alex/node-modules-typescript 7ca71e763d6 Move away from deprecated 'vscode' node module (#112718) c5d42b27722 renderers layout update 88f32df1d71 Merge branch 'mocha-update' e0498f0cdd3 Share typescript node module (#112718) dadb18c39e8 Upgrade Emmet removetag perf + behaviour, fixes #104173 04d74117859 eng: update mocha 2 -> 8 877dad976eb load renderers. bcef72ddd01 hygiene: switch to terrapin 434bbbde983 workingCopyService: take options alongside each argument 710360b7db4 resolveNotebookContentProviders does not take arguments. cb2167fdb22 Output transformers take ICommonNotebookEditor 3551968d69a update distro 2b25e675eb7 Merge pull request #112722 from microsoft/alex/node-modules-webpack 6112cc76f79 Move asClassNameArray/asClassName/asCSSSelector to CSSIcon 03a3e114151 No more spinning of loading progress. Fixes #112711 e42440bd357 Merge remote-tracking branch 'origin/master' into alex/node-modules-webpack 3072f2dd5cc Merge pull request #112719 from microsoft/alex/node-modules-mocha fba51d8422c 💄 async-await ebb94b4795e remove unused code 65e1707d19d format js/ts on save 3697925e5bc Use menuService across all views for context menus. Breakpoints. a341f800668 fix https://github.com/microsoft/vscode/issues/112745 d5d6096b65c tweak wording for participants https://github.com/microsoft/vscode/issues/111878 5ff434d97f1 debt - use localized string for bisect title 79d6bf6ca82 allow commands to specific a mnemonic title in additon to "normal" title 6efbb251b5a debt - tool tip never has a non localized variant b34a71e2279 Fix view order in remote explorer Fixes #112200 cbc47b1d7be Do not share `terser` 14440356e52 Merge remote-tracking branch 'origin/master' into alex/node-modules-mocha 438feb87d58 Merge remote-tracking branch 'origin/master' into alex/node-modules-webpack 4fae21b64d3 don't show dialogs when running tests 0e68af72989 fixes #112603 5c386371d8f Merge branch 'joao/build/compile-artifact' d981cf5b81b Revert "Revert "Merge branch 'joao/build/compile-artifact'"" 804c90cc49f Adopt more breaking changes from copy-webpack-plugin 77f4fb49952 Do not upgrade mocha 49962373131 fix tar d07422ec301 rename workspace action for duplicate b7aa0f7d406 fix template usage af42aa5bff8 show diaglog when extensions participate in file operations, have "don't show again" option and command to reset choice, add logging 2aa92c6e83b Adopt copy-webpack-plugin breaking change 3c4de451b48 ux - distinguish folders from workspaces when opening (#77718) 4f4ba928851 debug console: use menuService 29eb3fbc6a1 build: tarball compilation output first 6de06bc8c86 update distro fd85ae4f4a2 Avoid recompiling remote native node modules (#112644) 1cada18542a Share webpack related node modules (#112718) ed19f6082f3 Share mocha related node modules (#112718) 83c47f90d0d debug: move Debug Console action to the `...` menu adf764617e9 remove unused keybinding id e3612f789be Use registerAction2 in markers view bb157721fbb `/build/` and `/test/` should only have `devDependencies` 0929ea86cd3 don't suppress preview when handling onWill-events anymore, https://github.com/microsoft/vscode/issues/111878 a7fbcc27b75 Merge pull request #111222 from microsoft/joh/tabDecorations a09cbd1b118 timer mark sources must not be unique, fixes https://github.com/microsoft/vscode/issues/112708 834488bd7a1 merge last stages into Publish c757f9c70a1 merge macos jobs into same stage c8aaeb75137 Revert "Merge branch 'joao/build/compile-artifact'" 6d683afb84f build: compile smoke tests 2445f698949 fix hygiene 7aee2c7d45e Fixed issue -filtering by extension in Change Language Mode (#112435) d8a7c31aba3 testing: structural and perf improvements cf94178b897 testing: improved test explorer, cancellation 201112e9948 testing: continued work on test explorer 732c73ef796 diffBrowser. 7c4757dd0ce private _ 0055e658c99 style polish d6e8feb7744 Check in additional file for uri opener api change 13770874831 Ignore case while checking pressed keys in webview ecd2325f863 Escape backslashes in keybindings for release notes 423076ab493 Pass schemes to main thread a28b7022e0b Emmet fix edit point commands #112691 ae1077255c1 adjust test for removed process env key 1248ddadb8c fix #112683 bd38c65afc7 Add workspace tagging for java (#111303) 847fd19b026 Merge branch 'joao/build/compile-artifact' 21b1da3fb08 absolute layout for side by side output diffing bd131b85785 dynamic .artifactignore a8b4e9817f5 finish compile artifact 581ae611c2b debug: watch expression use menus 483bd40550d Update several Emmet commands (#112597) 2156931d38b Better side scrolling 41f450129ff fix: hover link encode unnecessarily 9474102e7b2 debug: more transition to commands, get rid of StartAction bffa4045489 Have TentativeBoundary trigger rollback (#112510) 9f27d99af01 Update isVSO check with new remote authority af7edd782e1 move progress and cancellation of file operation participants into its only customer so that progress stop when applying a workspace edit and showing its preview 6a342fe0a47 update original webview based on original text model. cee8cbd9f29 fix cyclic dependency b8ddffe7b41 rename setting fc6bf56844a Fix executeTask for composite tasks Fixes #112545 e5e25a027e3 Update src/vs/workbench/browser/parts/editor/media/titlecontrol.css c78bc564604 update references viewlet 3776ba6be2f Fix activity badge on ports view not going away 7d0d3835e6e cleanup hygien fb2a5e18bb2 fix build df0eda5adbb build 24a98f06442 debug viewlet: use registerAction2 and restructure the whole debug toolbar cda701edbd7 debug: move colors to debugColors.ts from debugToolBar d14fb9da0fb fix build 6236a5bf8b5 compile: use artifacts instead of cache ad362089bea add proposal of CancellationError, https://github.com/microsoft/vscode/issues/93686 b4b8bcda479 tweak padding-right for decorations d5a632e6fcf empty 0cee1531f79 Merge branch 'joao/build/remove-postinstall' 7db8e3b08c0 fix https://github.com/microsoft/vscode/issues/112418 ce1ffe0e7f8 link webkit issue for missing timeOrigin support a780c7d4515 spell out GDPR types instead of using mapped types 018b924fee2 add logging for #112649 3b5cdf3a0eb backup - move progress reporting into place where save actually happens c7d468d8ee3 empty 6260e655bc6 codicons -> iconLabels a1b6de93363 Fix markdown span style filter Fixes #112606 1abefb9be2a Fixes #112652: A disposed IPC channel should reject all requests with a canceled error, not resolve them 39bd9df739f Show a clear dialog on web when the remote connection fails aaf73920aea Ensure task executions get cleaned up Fixes #112247 6f08397de0f Enable fileWorkspaceFolder variable for remote tasks Fixes #112514 78fc9abd92e explain why ::after "inherits" italic rendering 21c8c9f768e Merge branch 'master' into joh/tabDecorations f75e0388adc remove passing user target 8fbe27ae9aa Do not touch the perf marks names ec2d8d67725 Try to give a good stack trace in case loading code fails ac7eb534b82 Increase web worker extension host timeout from 10s to 60s 1100f276812 fix build 77221e5f604 Allow strings as host name for port forwarding af519ea93f7 Merge branch 'joao/build/merge-distro-directly' 9fe0d3c372f Merge branch 'joao/build/child-concurrency' 2f8dee4d87c Add logging for calls of `process.exit` in the extension host 20920160792 don't show loader stats in perf view editor anymore 25d6642db52 debug: preserve focus in editor when integrated terminal is shown so match debug console behavior and to make sense for accessibility d833f8bc10d quick pick - use Alt as modifier to open to side 3229991032c 💄 083d38475c9 Tab bar not rendered on first load of only a welcome editor (fix #112618) ede8d447025 Bump distro 8a2ec350bd9 Restore terminal UI state and layout when reconnecting to remote terminals Fix microsoft/vscode#109244 fd6debbde2b hide inset and update layout for the left webview. 1741bbf7e6f render deleted output 2118388b0e1 two webviews fec4672c27a output diff container css class clearing 09d72bfaec8 💂 d2aebcd2c58 absolute positioned borders elements f91b8f2e7ae More scrolling in getting started 01b04218586 Take ownership of workbench-welcome 03081f5a3a8 Polish skip location 6d3c2e68355 Adding proposed external uri opener API 542670762fd Make sure we dispose of webview revivers when the main thread extension host is disposed of 03c528450f3 Small formatting cleanup bd8e81d122e Merge remote-tracking branch 'origin/master' into rebornix/output-view-model f6a796b6693 grouping types in notebookBrowser 86838823e3b move genericTypes into notebookBrowser 706b8ddf983 single backlayerwebview! 05f69f7bbd3 share the logic for renderers in webview 64f7c1b0444 💄 b56da5e92aa align backlayer 1 and 2 c7616704115 fix build errors fa464a731cc 💂 9694d9f5c96 move output layout update logic out of back layer webview. e2458c2d705 Fixes #112483: Use `JSON.parse` and fall back to the tolerant parser only to extract better errors 9c70421d476 IDisplayOutputLayoutUpdateRequest. a7cac806230 no need to pass in cell for updateViewScrollTop. it only talks about output and offsets. e3cf33470d6 link clicking in the output webview 65bc4153aed support scroll position syncing. 15ba91d098c Massage mark name to align fbe4aa28ff4 Collect and deliver perf marks from extension hosts (#112552) 691a2ce4ecd add timeOrigin as implict mark whenever possible 976b9b5cda2 💄 0ff71d32138 update output in webview position when list view layout change. c782b708b18 cell body height to 0 so I can click into the webview adaa7d6d638 Update codicons: use new loading icon and animation (fixes #112593)ca2658d797
7284389d4bc Update Codicons: Make circle-large-outline 1px outline (fixes #112310)7a530b493a
bd67f0d0cab 💄 ff02224c1bc move output layout info into genericCellViewModel shared by notebook and diff. 179adc5f7fd support removing a setting from all targets 284ace0bb6f Cleqn up codicons 35be51e43d9 open editors: adopt registerAction2 bbb797d3e4d clear static outputs when collapse outputs panel caa595fc066 absolute position of mixed static and dynamic webview 3080c3e88c4 webview output first load f158da4d7c4 Fix microsoft/vscode-remote-release/issues/1801 063ecfe0768 explorer: adopt registerAction2 66bf5744fa5 🆙 distro 5b33fdd6507 API: finalize status bar backgroundColor (#110214) 2daa49098b1 Catch all localhost duplicates when forwarding a port Part of #112571 41628e33267 merge distro in a single command dfeaeb5740a debug: check if languageIds is there e2f6cc5a965 breakpoints: use registerAction2 d79f4e7b887 add test timeouts 208380cf766 Dispose a permanent failed connection and fail any further requests through a disposed `ChannelClient` (#112278 , #112568) 834b2b1570f bump cache salt b7d648a8739 remove CHILD_CONCURRENCY=1 for all except windows 9293efd7e7d build: remove postinstall script invocation be2d9834342 debug console: use registerAction2 c97d5e10337 build: use PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD 5ae66f37a89 build: use ELECTRON_SKIP_BINARY_DOWNLOAD e135eee1f1d add perf mark when file systems are registered, fyi @bpasero d782f11c7b2 do not restore theme if setting has changed 6aa034b1ca4 fix build 43c613c7009 timer mark event should also include unix timestamp 02bf5807169 remove migrating sync settings 3a8b161dcc8 #103869 remove user value if set to default and target is not passed 181d5dafba6 editors - show progress when waiting for auto save to complete to take long (fix #112278) 175c1298b84 remove all usage of concurrently 7743d971b10 concurrently -> run-run-all d444826441a Revert "debug: stop supporting enableBreakpointsFor" 6c5916cafe1 web api - document some methods I forgot 607a0b8f133 in addition to file watching, use text file service onDidSave, fixes https://github.com/microsoft/vscode/issues/112477 0716eb086a6 Merge pull request #112306 from microsoft/aeschli/remoteIcons 0f56b9b6868 add embedder API to retrieve (startup) performance marks 6eb9b8938fc debug watch: use registerAction2 092b1365c76 variables view: use registerAction2 8ddbdd338a1 Merge branch 'master' into joh/tabDecorations 690e9f1e02f add ITimerService#whenReady bee1e648979 Fix Configure Task for workspace w/ 0 folders Fixes #111815 aa587fe40a3 Catch bad progress location in extension trees Fixes #112211 b54f979ccbb Merge branch 'master' into aeschli/remoteIcons 05b94398d5a update distro 27cefc2a818 Rename `Protocol.onClose` to `Protocol.onDidDispose` 9cc0fb57434 windows - add helper method to know used window 460b6e720ef in browsers perf util is just a wrapper around native performance 1537b5bcc25 windows - cleanup hack for empty windows when restoring afbd2e826c7 Remove Build jobs for now c42e44e756b 💄 settings descriptions referencing other settings a1f815a4c9a add option for preview navigation behavior (#112389) f3e95ede9e4 Remove unused import 29e3f670384 config - careful with undefined/null config props 6b950b3d685 💄 d36f19d1d3d quick pick - configure openEditorPinned properly f9bb8e62001 fix #112467 5114f5d76a1 Merge remote-tracking branch 'origin/master' into rebornix/output-view-model 89fd7be7fbd test 9ca7b4ed4df DiffElement cbf9234d4fd hook modified webview a9c5d7cc3c6 chore: fix CXX export 6361cfab60c Add scrolling to getting started page (#112500) b2c0291c254 expose notebook text diff editor list row container cf242ccaa83 prep for webview renderers ca4601deba4 no unnecessary as any f656636cc38 💄 14b7df48c39 do not restore default theme dcda9032e78 output height calculation in view model by reading folding state. 239c211326d positioning for dynamic height output 4d0195152fa Add a slice to fix compilation f76b1c25e7e remove quotes since we don't spawn shell 79a42e72217 use menu registry for sidebar actions 9565cf54c63 chore: bump electron@11.0.5 b44750d551d use menu registry for views visibility actions 387f4f4b112 Skip electron binary download 7989b98326e separate side by side and single side viewmodel 428008f3a56 Align versions across `package.json` files d6e0a5424f2 Use directly `yarn compile` 3ba967fd7eb ext: log errors running contributed commands to the console for debugger vis d583e26cd09 fix show view submenu in debug 0f33afa9f96 fix #112217 by replacing look behinds 42e31e92e29 cursor and user select update for output 5431ddb506f Bump distro 4263025dcdd Merge pull request #112279 from chenjigeng/feat/builtin-extension-report-issue 287137afbcf fixes #112415 8fca5328ac5 Merge branch 'roblou/shellEnvVar' dce22cf74b5 Fall back on node API when $SHELL is not set, for user shell and shell environment discovery See github/codespaces#1639 8fbaf86e4b1 fixes #112413 3ee9eb9be4a fixes #112417 a22b5d54ad4 [json/css/html] adopt lsp 316 c2a8940127b simpler perf mark for didLoadExtensions 17c777b1119 update distro e2ba0809426 fix typo per #112437 29edd0d2a90 Use panel title context menu for contextMenu actions d766e6baa8d =revert changes to themes.contribution.ts 6d8f5bf363a Merge remote-tracking branch 'origin/master' f7d9fe9b720 no trigger specification 8876c6debba enable master ci for production build 5b2015c9a00 telemetry for raw timer marks 72e82ba7b25 Make simple file dialog more predictable for screen readers Fixes #109722 9ac0fc87902 remove unused/duplicated perf.mark a6f2524e4a8 - introduce panel title menu id - move view container menu acitons 43017777275 Update grammars c87c95a1a04 prefix our performance marks with `code/`, e.g `code/didStartRenderer` etc 7381f53fd18 windows - move out more state code into separate class f9b89066c7a remove dependencies stage 5f31a6ddc66 Revert "fix yaml" 064e1d19dfd fix yaml 2f2004f5fa8 faster dependencies check d67e33f0b0d split compile & hygiene 2af62a03fe3 simplify continuous build b1524d6b34e build: VSCODE_PUBLISH 200d60cc13c Do not create issue on failure c7df7d91f42 Move actual gulpfile logic to `/build/` ac6cadf8ee2 Fix gulpfile e56597ab7a6 Save 1.5 seconds from `gulp` startup time 5f20ce95815 Increase yarn's network timeout 7d4c5a2c0fb Add a dedicated `Build: macOS Node Modules` job 90f0cf5b313 Force cacheNodeModules to fail 28776ec1a28 Cache yarn cache directory 704393a57cf fixes #112410 7168a1bf157 remove unused measure `ellapsedTimersToTimersComputed` 8b5984e7b83 Windows state deprecations. Fixes #112443 4df387f5ad1 add a way to read marks with source, adopt in perf view editor c666c1d72f2 Save remote Help&Feedback enablement globally Fixes microsoft/vscode-remote-release#4165 3aa342ff68e Remove use of `getActions` from tunnelView.ts Part of #92038 4ba273fddaa name marks with source when importing them 51a3943093b Delete PR workflow stub 814bf82b853 Split compilation job into core compilation and extensions compilation 672216afdab Fix auto-generated link c7319db91ce Remove use of getActions in remote.ts 16e715dc38e Bump ini from 1.3.4 to 1.3.7 (#112276) 45c7cae914d Bump ini from 1.3.5 to 1.3.7 in /extensions/markdown-language-features (#112275) d1fff1a0836 Check in `.js` files from the `/build/` folder to improve build speeds ec5da6d09c1 remove direct writes to `globalThis.MonacoPerformanceMarks`, use native performance instead, import native performance entries into timer service, fyi @bpasero 4b88174158f notebook: use icon names in registerThemingParticipant d55a3f0bcaf Merge pull request #112296 from yeswolf/master 71aa067bbd3 Fix intentional failing test e25373f16ea One last try at automatic issue creation eeded3b8c45 fix #112447 614e183e9a2 Attempt to avoid skipping steps on failure cb84c32f5ac fix #112448 db4264eb3f8 Fix variable b7f7b9fb8bd Intentionally fail to test issue creation a861e22c7cc Switch to using `github.sha` b742a4c8ea1 Create issue on test failure 707afc26d6f Skip compilation if the cache is hit 36b48f49849 milestone update f413b81fcda windows - move state handling into own class 75eeac01049 Split Linux Build, add macOS jobs 6f08741eb91 separate viewPane and viewPaneContainer a4206d19b0d rework perf-util, only allow for marks, separate perf-marks from renderer and main process (and future other processes) 24b18f1bd1f add perfEntries2 75f3a503fc1 create and dispose menu for context menu actions 18ded3c91b2 windows - shuffle state interfaces over 9489147837e Re-enable build jobs 51f18c087dd windows main service 💄 d8a48910053 windows - first cut cleanup of windows finding logic 1a1db8f00e7 bootstrap - add more typing info 1a2132f16ee web - show dispose dialog only upon user interaction 28964872e7b lifecycle - log long running operations preventing shutdown (for #112278) 87b4380045d Merge branch 'master' into master 96b426ef1da Remove dupe context key service registration in cell Fix #111280 873f23dc4cf Fix line highlight when navigating to search results Fix #106209 7e16a1e72ed Fixed issue with dragging to select text on Hover should not hide it fad4717a787 Fix issue with dragging to select text on Hover should not hide it 5954c8366d9 Fix #112267 - Revert listener inside Submenu action - Create listner for submenu action changes in view menu actions ced21a0abcc 💄 fd44d15c223 fix #112337. fe4f9a9e6fb testing: add to i18n 91bb3857ac9 Use tree widget in the process explorer, fixes #104013 75dd72eeff5 move layout info into diff cell view model. a9bf16e0019 testing: base test explorer f30948328de update distro 70a67a1b844 Convert to use `for ... of` c5c6c824113 Add Windows 7ae944e4b04 load static renderers 70355b66765 Add macOS 374e7487bd2 Run unit tests concurrently 58e88100755 Try `yarn concurrently` 73c050511b5 Avoid respawning ba16f865b22 Remove compile and linux build for now 44b918b6248 Avoid "&" 0059c4cbfe0 Tweak combined step 072d922c450 Revert "Revert "Pick up offical TS build for web server"" 5b8a6ee21b4 Add more logging to resource loading for webviews 771068e9978 Remove unused function 3bad41ff3c3 Attempt to run things in parallel 0dd9cdbb45f Fix env variable usages e2e23aeb777 Add a compile and a linux build step f79e3aea635 Fix notebook status bar icon colors (fixes #112323) e3e3f8802ff Abandon composite actions since they cannot actually compose on other actions d1d4143971a Attempt using absolute path 7e7c1de5697 Follow the expected naming scheme 623440c55c1 Extract cached yarn logic to a separate file 01ea0ecc098 Remove playwright caching eb5c4388c74 Revert "Pick up offical TS build for web server" 92723a8a2c8 Bump markdown-it and highlight versions 52d2132e8d9 Move valid layers check together with the hygiene check 4942f242050 quick fix for setting description typo (#112327) 641abd4170d Extract the hygiene check to its own job 0ec1755aa9b Simplify caching strategy d819caf1d27 Fix if condition c7fa4ef0218 Troubleshoot expression b2444f539bc Open Search Editor Action Bar item should clone search view's config Closes #112209 e1bc069d6ab Push workflow stub file e8922b83b11 Update arial-label when renaming a terminal. Fixes #99072 baacaaca3e1 feat: use baseUrl first fd45ba86b05 chore: remove git suffix c197be4ef74 externalize remote icons 76436a4d435 Cache the /build/ folder compilation 2554c8c14e0 Remove the `linux-node-modules` job a0122361111 Define `path` for the Cache node modules step dc99b1ab774 Add the key property to the Cache node modules action 5e6152dcb39 Introduce a `linux-node-modules` job 50d0d5f0d25 Theme icon modifiers should work everywhere. Fixes #112298 2fc36a7d386 enum all breakpoint icons, avoid css selectors with patterns 824df4da78f Fix duplicate name 00c3a0bc9dc Gotta love yaml b95feff0398 Fix indentation 27dee688674 Attempt to revive linux github action b9b1b6156f9 Run compile on the `/build/` folder if the node_modules cache is hit ed584f486eb use tt policy for nested workers, https://github.com/microsoft/vscode/issues/108400 d39671e7cb1 Convert to use `for ... of` 6d79a70a362 Add more frequently-used Ruby filenames to Ruby bundle (based on the actual TextMate bundle) 8f78f153fe0 Fix #112221 bfaaca632f3 Fix array syntax d9f2b49323c Attempt to cache all node_modules folders 8af387dddd7 Fix #112287 b857599fb9b Attempt to cache root node modules 887bc527439 remove extra separator 684ceea0ed6 🆙 distro c350d8b4238 #92038 Move panel actions to use menu registry f211a2bbe96 clarify docs, fixes https://github.com/microsoft/vscode/issues/111686 fff6f7414f0 💄 remove commented code eea0681288d adopt `actions/setup-node@v2-beta` af74fd420bf nuke getSecondaryActions from outline, https://github.com/microsoft/vscode/issues/92038 56e35cf038f #92038 Create view and viewPaneContainer util actions 136df0d897d nuke getActions in outline pane, https://github.com/microsoft/vscode/issues/92038 d94ba914134 #92038 dispose actions on change 84e5cdec293 #92038 Use menu registry a029dda2fe7 move suppress logic, https://github.com/microsoft/vscode/issues/111878 0a2cb7630f3 apply workspace edit from onWill-handler from within renderer, https://github.com/microsoft/vscode/issues/111878 61af2b26daa feat: support Report Issue capability for built-in module 1d5611c9d8f No need to install anything f201645d8f7 Do not configure `xvfb` 019b5ab4c99 Remove yarn `CHILD_CONCURRENCY` limit 124b4bd151d Try newer `actions/checkout@v2` 3b34ea9f163 Update commands.ts (#112222) 32cc71c4a73 web - do not ask for clipboard access in ext tests (fix #112264) bb68097d15f add extra check to understand https://github.com/microsoft/vscode/issues/112263 fdbd7bf6bbc web - tweak dispose dialog 86deb14fd3c make slow timeout event slower, fixes https://github.com/microsoft/vscode/issues/112262 6a03e96bfe3 Merge pull request #112206 from engelsdamien/master 69edf83c14d Merge pull request #112224 from microsoft/joh/worker 38a89809051 Avoids triggering autofetch unless setting changes 83f43bee1d5 Changing autofetch to a string config which has "current", "all" and (#111090) 39f78228fa6 Add missing file to commit 4d4f3a305c2 Observe the confirmBeforeClose setting for webviews 08e6047a050 Remove extra lines 0370a6ebf5f add explicit jsdoc types 618bf22ca5e remove !. ed0634933e2 💄 29bc5baadc9 Only prompt if input (#112113) 4586eb012f9 renders all deal with output view model. a416c1534bb #92038 Use menu to register actions - Extensions View 996c3495b49 #92038 use menu registry to provide view actions f46cb57055d move picked mimetype to its view model. a5f84617e22 chore: fix run-on values for snap build (#112248) 6424b09b2c8 Fixes #111909 - adds user agent to push 42cdda5ab0f Erase types to avoid using lib.dom.ts types from `/common/` 92adef0bac1 Fixes #108822: Do not render the minimap shadow on Safari c503386ee3c refs #111463 41c6b79537b [GettingStarted] Slow down animation when expanding/collapsing items on sublists 9823eb0bf34 Avoid endless loop (fixes #110392) d8fce51aed8 Tweak getting started 354d5ff8cd4 Tweak get started detail pane (#111840) 50ada457c55 change name back 308e723e181 yet another tweak to startup timer telemetry de2c02eb504 use css variables for code lens font, https://github.com/microsoft/vscode-internalbacklog/issues/1674 10e40063d9d Delete is no longer irreverisible ed04ea29d3a print nested worker errors onto console 1fb86647518 support nested worker when running without iframe 4dce67232d7 add failing Worker ctor inside nested polyfill worker 32ba217a5b0 support https-iframe b3d95fea2ab web - inform user if workbench gets shutdown 91f00c7c285 web - allow to retry clipboard access (#112089) 61995eab4aa fix linux deb repo pointer e6d238e251a web - clipboard warning when failing access 86a23116059 Set tunnel information for embedders Fixes #112213 e5664f1678e restore and update CSP header 49b84b4bd97 💄 d90179bef2f some simplifications b44f2b3db2b Merge pull request #112144 from microsoft/isidorn/replFontFamily 4a76840f7f1 fix setting --vscode-relp-font-family variable caf0943a994 Merge branch 'master' into joh/worker bc95e893efa web - fix window open 90f2d386c82 Updates tsec to latest version using TS4.1.2 6c9dab1259f web - register external opener to prevent unload on expected href changes 039f15a0f93 💄 c7fa31fc926 [bot] make *duplicates link to a query for issues with matching tags. Closes #111903. Closes #49912. 5fe4f5583cb fix yarn.lock leftover d2965c18bf6 Prompt web users when they try using ctrl+w/cmd+w when focused on a webview 04ec120e2c3 Exclude dist from eslint and hygine ee64fdae8b7 Use dispose directly instead of loop c3d8989b24e Enable going to stdlib on serverless 582f8f6bb0a Bump Static version of web TS version e6a13fb134b Remove work around for TS not supporting paths on its own 71fad5aa411 Enable preferConst in TS project 16334048831 Remove unused types 45283df1fda Merge pull request #112176 from microsoft/rebornix/nb-diff-perf f29a3cabc47 Pick up offical TS build for web server 79557ebbd2f Make sure markdown preview is updated if on disk file is updated 6ad6905f981 Re-enable *.integrationTest on windows 542fa93eae7 Pick up new TS version for building VS Code 864e80dc480 fix #112178. 4fe04b10a4c Assign rzhao271 to emmet tasks 1f528e7de40 💄 2c9bcb8b14c Merge remote-tracking branch 'origin/master' into rebornix/nb-diff-perf 9ccbebed752 revert change to grooming notebook a33e1d617e8 Revert "Fixes #104004: Only run tests if the tests belong to a known extension" f9134083e5d delay cell text model disposing. 4fefd1030ac limit editor contribs in notebook diff view daca95ea065 fix: disable shm usage in container builds (#111787) 31d11a37299 fix memory leak 180506d8844 feat: support open local file b36ec60ac4e notebook: adopt trusted types for renderer scripts b1e7f915d49 notebook: adopt trusted types for renderer 90724cd823a Use `trustedTypes` where using `new Worker()` (#108400) f9d6df8ea1e Fix port forwarded nofication showing for the wrong port Fixes #112159 83993fb92c5 Fix run npm script in folder command Fixes #112152 52cc4e6a0d5 #108793 check casing and use proper extUri 8b9b8df0247 explorer: smarter handling of file events ea7bed08f1b debt - escape quotes 9ce3f9462d2 disable proposed API checks on top-level getters 1aa76d792f6 repl: improve height estimate b8101e698c2 Fixes #106581: Do not react to Win/Super key for mouse wheel zoom on Linux 7951e1f9138 🆙 web dev e24db417b2e update my-work notebook 2c74aeb5b6b fix #112146 eec97b824f0 Use the future scroll position to compute the scroll top and reuse the current smooth scrolling animation (#104144, #107704, #104284) 5df492ff594 up references-viewlet db2d6820b19 introduce vscode-repl-font-family a0cbecb188c Merge pull request #112069 from engelsdamien/master c6f4565a203 notebook.selectedCellBorder: fix typo e6fc328247b update iconRegistry doc generation 785097e4618 Merge pull request #111644 from chenjigeng/master 49dc593a83e Merge branch 'master' into master b3c053d44b2 Preserve whitespace in tree hover Part of #112124 59ba6494b9e Better timing for multiple lock files warning Fixes #111635 6643750275a Fix #108647 bdb0ef4d489 Fix #108793 5ee430bf26d Deduce secondary host from the request if possible aef539adfca Remove unused import 'UriIdentityService'. (#112112) bdd890380ef Fix #112121. 82974e8cda6 exthost: use marker to avoid duplicating written log messages 7491d391907 Merge remote-tracking branch 'origin/master' into connor4312/native-exthost-log d66e65fcdd9 fix: Param helper hover getting cut off at bottom (#112019) 3c9a4554702 no longer render overview ruler. f86fd13b2c6 fix #110357. c643c433e82 Remove extra whitespace in dom.ts 759375429eb refs #110392 1cc1f166170 Use uriIdentityService to compare uris, fixes #107779 9ee7e1e87a7 Fix #111871, 'openReporter' should resolve 353227400a9 fix: Debug Console Linker automatically decodes link 71ba241fb01 Merge pull request #111897 from microsoft/alex/111128 2ef8227aacd Log extensions query telemetry data 838b3949ec8 Add workaround for #101754 ad10dc75901 Improve `writeFileIfDifferent` logic 88f09bd5f25 Move `getElectronAcceleratorForKeyBinding` to `WindowsKeyboardMapper` (#101754) 2add9e300c7 Uncomment test 3a47fc387a5 bug fix, see #112013 (#112015) b2eedd8ee09 Add `wss:` / `ws:` to the CSP affd21e65ac tabs - partially take changes from PR 106448 to reduce diff b3a3dc9c0a5 Debt: Test findPorts (#112092) 5e5ae15b22c debug: show the hover not so eagarly (do it twice as slow as editor hover) 768bcf45422 Fixed tab switching too fast when wheeling/scrolling (#112034) c8b592a57a3 debug editor decorations: always decorate top stack frame, and decorate focused stack frame if it is not the top stack frame 92d6f00d6e2 debug console: color the debug group elements 9edc69706f8 Just set textContent for custom hover Fixes #111643 46ee31fce0f Try to fix markdown tooltip for Safari #111756 208bfc9970c fixes #112046 66f5e9294e3 path lib usage 💄 08e29d24b4b Remove duplicate (case sensitive) recent workspace/folder names on the welcome screen (fix #111954) bb480d2c4f6 Merge pull request #111916 from microsoft/alex/104004 861e7bcc1b2 Wait for the remote configuration before creating remote terminal processes 0e885aaf70c retry all cosmosdb ops 3212ddbc76f multibyteAwareBtoa - add commented out failing test for #112013 a6946159d4e 💄 layers checker 6f5448afac5 Include candidate pull requests 5865aeaa7b9 Rewrites Trusted Types sink assignements 2c937725db0 Updates tsec aa18ca68276 Unable to find the registered languages while saving the file. (fix #111788) 91c7834e926 debug: update js-debug f79bb79d2b6 Suggest a different description (#112049) 3655a82edcb add log to createAsset retry 3136ecb1d31 Do not ignore errors from $spawnExtHostProcess ab8c8dbd8e5 Fix #112030 cf8ed37206e fixes #111850 c2de3a602e8 Tweak candidates notebook query 4250e343e0f use proper repos for linux arm d0475711090 Prompt to save untitled file before run/debug de22e951f9e more cleanup for #111177 ffdc1096fa5 Windows - Taskbar entry context menu is empty (fix #111177) 36628d73b91 add exponential backoff 66aab34216f retry createAsset sproc due to ECONNRESET c4d77ea6193 #89559 Set logsPath in window configuration 3835563e123 Fix #112012 64f63a3dd70 Fix #108266 ea0b7fd29af Revert "build: create asset should still try to add asset" 267188e90de highlightModifiedTabs and pinned tabs issue (fix #111641) 04b9a571b84 fix #111898 on master 878bf135043 debt - shuffle some electron-main code to better layers 25cbe382515 proxy - rename proxy2 to proxy 428d5b1d302 proxy - remove old proxy auth dialog f5da8e346fc :lipsticky: async fc9ff5d569b ci: avoid overwriting CC variables for arm arch eeed0fd5692 update distro eb189c703c7 Fix #111946 86d779284b6 ci: fix condition for linux builds 7a7d27397a3 chore: fix cache condition for native modules b0d4a08e3e0 chore: bump distro 94142bd7e0d chore: bump electron@11.0.3 (#111931) 962bedc4f47 Update version to 1.53.0 423bdb2e263 Fixes #104004: Only run tests if the tests belong to a known extension 707ca0a06c6 nested worker in worker b8aa4141d28 Fixes #111128: Do not touch current line's indentation when pressing Enter c8e490e5e68 chore: optimized code 3e22e6f4120 feat: add the rename test cases of html-language-features 8f712866cf3 fix: check canRename before findRenameLocations 81610ca5b61 bootstrap tweaks cc502ffc10b Merge branch 'master' into joh/worker 5458e760b98 wip 94b2772f8c2 feat: add rename symbol within <script> tags 2c306f762bf Merge branch 'master' into joh/tabDecorations 8298927b3e2 add settings to toggle/tweak editor tab file decorations f7a2368ae8e tweak padding of file decorations in editor titles 6da3c138aa4 apply no tab background style on container, not label 4858682abd5 render file decorations italic when main label is italic 2eef0d6288f Merge branch 'master' into joh/tabDecorations a53d75097a1 add file decorations to editor titles (tab and no tab) 206fbe0bb38 debug: use native logging in extension host fc393cae1bb readability and test improvements 43418e212de update selection, better multiline support 3182ea7f89a snake case 2926b2c1f19 use latest wsl 4e32124f9f3 Merge commit 'a36c68b9ec3d6a0aca9799d7a10be741a6658a51' into joao/wsl 13612c3cdb1 DisabledByEnvironment 26b51b5fb53 Merge branch 'master' into joao/wsl 46b61186de0 Merge branch 'master' into joao/wsl 2e2b0d1895a distro adb24c6486a use clientOnly for remote wsl extension 9f9c0e71ad6 distro 357fe395aef fix buil 44c81d3c33d Merge remote-tracking branch 'origin/master' into joao/wsl 8a5f6fa5ce5 include remote-wsl by default 8836c8bfeee reuse source code editor 3b796c62129 allow init dimension for the diff editor and left/right side editors. REVERT: 3e344b17b7b Remove extrenuous file. (#113825) REVERT: 36f9eaf1e7b Merge pull request #113596 from Ry0taK/release/1.52 REVERT: e73a6b082cd Create ryotak.txt REVERT: ea3859d4ba2 Bump version number to 1.52.1 (#112659) REVERT: 608dfc13634 Catch all localhost duplicates when forwarding a port (#112575) REVERT: 8b5ece7c203 Merge pull request #112431 from microsoft/misolori/notebook-color-icons REVERT: c11e9282d8f Merge pull request #112565 from microsoft/isidorn/enableBreakpointsFor REVERT: 2b6973a35d2 debug: check for existence of enableBreakpointsFor.languageIds REVERT: 374d05c17cf Revert "debug: stop supporting enableBreakpointsFor" REVERT: f93c8a0386a Fix notebook status bar icon colors (fixes #112323) REVERT: 940b5f4bb5f chore: fix run-on values for snap build (#112245) REVERT: dbbf7079b20 Make sure that tunnel information isn't set on desktop (#112228) REVERT: 99edf4ff0fe fix linux deb repo pointer (#112226) REVERT: 91a50e30223 Set tunnel information for embedders (#112215) REVERT: c6cb5415399 Fix port forwarded nofication showing for the wrong port (#112160) REVERT: 6caba069206 Merge pull request #112141 from microsoft/joh/fix/111913 REVERT: cb971b8ffd8 Preserve whitespace in tree hover (#112133) REVERT: e4af2d8ad65 disable proposed API checks on top-level getters REVERT: 6f933020e8d Just set textContent for custom hover (#112075) REVERT: d66e3740a4a Merge pull request #112054 from microsoft/connor4312/js-debug-1.52.2 REVERT: b4ec131cff7 retry all cosmosdb ops (#112072) REVERT: 5e585c5fb4f use proper repos for linux arm (#112026) REVERT: 37c2de252eb debug: bump js-debug REVERT: bc13785d3dd Retry createAsset sproc due to ECONNRESET (#112020) REVERT: 559a78eaaa9 Mitigate #109728 (#112008) REVERT: 62d6b82a6f9 Revert "build: create asset should still try to add asset" (#112009) REVERT: 30e0c5784b3 fix #111898 (#111928) git-subtree-dir: lib/vscode git-subtree-split: 622cb03f7e070a9670c94bae1a45d78d7181fbd4
This commit is contained in:
parent
e4a830e9b7
commit
89b6e0164f
|
@ -14,3 +14,4 @@
|
|||
**/extensions/**/build/**
|
||||
**/extensions/markdown-language-features/media/**
|
||||
**/extensions/typescript-basics/test/colorize-fixtures/**
|
||||
**/extensions/**/dist/**
|
||||
|
|
2036
.eslintrc.json
2036
.eslintrc.json
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,2 @@
|
|||
dist
|
||||
node_modules
|
|
@ -0,0 +1,10 @@
|
|||
name: 'Build Chat'
|
||||
description: 'Notify in chat about build results.'
|
||||
author: 'Christof Marti'
|
||||
inputs:
|
||||
workflow_run_url:
|
||||
description: 'Workflow run URL of the completed build.'
|
||||
required: true
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'dist/main.js'
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "build-chat",
|
||||
"version": "0.0.0",
|
||||
"author": "Microsoft Corporation",
|
||||
"license": "MIT",
|
||||
"description": "A GitHub action to create a Windows Package Manager manifest file.",
|
||||
"main": "dist/main.js",
|
||||
"scripts": {
|
||||
"build": "tsc"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.2.6",
|
||||
"@octokit/rest": "^18.0.12",
|
||||
"@slack/web-api": "^6.0.0",
|
||||
"azure-storage": "^2.10.3",
|
||||
"stream-buffers": "^3.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^14.14.22",
|
||||
"@types/stream-buffers": "^3.0.3",
|
||||
"typescript": "^4.1.3"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,217 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as core from '@actions/core';
|
||||
import { Octokit, RestEndpointMethodTypes } from '@octokit/rest';
|
||||
import { WebClient } from '@slack/web-api';
|
||||
import * as storage from 'azure-storage';
|
||||
import { WritableStreamBuffer } from 'stream-buffers';
|
||||
|
||||
(async () => {
|
||||
const actionUrl = core.getInput('workflow_run_url');
|
||||
const url = actionUrl || 'https://api.github.com/repos/microsoft/vscode/actions/runs/503514090';
|
||||
console.log(url);
|
||||
const parts = url.split('/');
|
||||
const owner = parts[parts.length - 5];
|
||||
const repo = parts[parts.length - 4];
|
||||
const runId = parseInt(parts[parts.length - 1], 10);
|
||||
if (actionUrl) {
|
||||
await handleNotification(owner, repo, runId);
|
||||
} else {
|
||||
const results = await buildComplete(owner, repo, runId);
|
||||
for (const message of [...results.logMessages, ...results.messages]) {
|
||||
console.log(message);
|
||||
}
|
||||
}
|
||||
})()
|
||||
.then(null, console.error);
|
||||
|
||||
const testChannels = ['bot-log', 'bot-test-log'];
|
||||
|
||||
async function handleNotification(owner: string, repo: string, runId: number) {
|
||||
|
||||
const results = await buildComplete(owner, repo, runId);
|
||||
if (results.logMessages.length || results.messages.length) {
|
||||
|
||||
const web = new WebClient(process.env.SLACK_TOKEN);
|
||||
const memberships = await listAllMemberships(web);
|
||||
const memberTestChannels = memberships.filter(m => testChannels.indexOf(m.name) !== -1);
|
||||
|
||||
for (const message of results.logMessages) {
|
||||
for (const testChannel of memberTestChannels) {
|
||||
await web.chat.postMessage({
|
||||
text: message,
|
||||
link_names: true,
|
||||
channel: testChannel.id,
|
||||
});
|
||||
}
|
||||
}
|
||||
for (const message of results.messages) {
|
||||
for (const channel of memberships) {
|
||||
await web.chat.postMessage({
|
||||
text: message,
|
||||
link_names: true,
|
||||
channel: channel.id,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function buildComplete(owner: string, repo: string, runId: number) {
|
||||
console.log(`buildComplete: https://github.com/${owner}/${repo}/actions/runs/${runId}`);
|
||||
const auth = `token ${process.env.GITHUB_TOKEN}`;
|
||||
const octokit = new Octokit({ auth });
|
||||
const buildResult = (await octokit.actions.getWorkflowRun({
|
||||
owner,
|
||||
repo,
|
||||
run_id: runId,
|
||||
})).data;
|
||||
if (buildResult.head_branch !== 'master' && !buildResult.head_branch?.startsWith('release/')) {
|
||||
console.error('Private branch. Terminating.')
|
||||
return { logMessages: [], messages: [] };
|
||||
}
|
||||
|
||||
// const buildQuery = `${buildsApiUrl}?$top=10&maxTime=${buildResult.finishTime}&definitions=${buildResult.definition.id}&branchName=${buildResult.sourceBranch}&resultFilter=${results.join(',')}&api-version=5.0-preview.4`;
|
||||
|
||||
const buildResults = (await octokit.actions.listWorkflowRuns({
|
||||
owner,
|
||||
repo,
|
||||
workflow_id: buildResult.workflow_id,
|
||||
branch: buildResult.head_branch || undefined,
|
||||
per_page: 5, // More returns 502s.
|
||||
})).data.workflow_runs
|
||||
.filter(run => run.status === 'completed');
|
||||
|
||||
const currentBuildIndex = buildResults.findIndex(build => build.id === buildResult.id);
|
||||
if (currentBuildIndex === -1) {
|
||||
console.error('Build not on first page. Terminating.')
|
||||
console.error(buildResults.map(({ id, status, conclusion }) => ({ id, status, conclusion })));
|
||||
return { logMessages: [], messages: [] };
|
||||
}
|
||||
const slicedResults = buildResults.slice(currentBuildIndex, currentBuildIndex + 2);
|
||||
const builds = slicedResults
|
||||
.map<Build>((build, i, array) => ({
|
||||
data: build,
|
||||
previousSourceVersion: i < array.length - 1 ? array[i + 1].head_sha : undefined,
|
||||
authors: [],
|
||||
buildHtmlUrl: build.html_url,
|
||||
changesHtmlUrl: '',
|
||||
}));
|
||||
const logMessages = builds.slice(0, 1)
|
||||
.map(build => `Id: ${build.data.id} | Branch: ${build.data.head_branch} | Conclusion: ${build.data.conclusion} | Created: ${build.data.created_at} | Updated: ${build.data.updated_at}`);
|
||||
const transitionedBuilds = builds.filter((build, i, array) => i < array.length - 1 && transitioned(build, array[i + 1]));
|
||||
await Promise.all(transitionedBuilds
|
||||
.map(async build => {
|
||||
if (build.previousSourceVersion) {
|
||||
const cmp = await compareCommits(octokit, owner, repo, build.previousSourceVersion, build.data.head_sha);
|
||||
const commits = cmp.data.commits;
|
||||
const authors = new Set<string>([
|
||||
...commits.map((c: any) => c.author.login),
|
||||
...commits.map((c: any) => c.committer.login),
|
||||
]);
|
||||
authors.delete('web-flow'); // GitHub Web UI committer
|
||||
build.authors = [...authors];
|
||||
build.changesHtmlUrl = `https://github.com/${owner}/${repo}/compare/${build.previousSourceVersion.substr(0, 7)}...${build.data.head_sha.substr(0, 7)}`; // Shorter than: cmp.data.html_url
|
||||
}
|
||||
}));
|
||||
const vscode = repo === 'vscode';
|
||||
const name = vscode ? `VS Code ${buildResult.name} Build` : buildResult.name;
|
||||
// TBD: `Requester: ${vstsToSlackUser(build.requester, build.degraded)}${pingBenForSmokeTests && releaseBuild && build.result === 'partiallySucceeded' ? ' | Ping: @bpasero' : ''}`
|
||||
const accounts = await readAccounts();
|
||||
const githubAccountMap = githubToAccounts(accounts);
|
||||
const messages = transitionedBuilds.map(build => `${name}
|
||||
Result: ${build.data.conclusion} | Branch: ${build.data.head_branch} | Authors: ${githubToSlackUsers(githubAccountMap, build.authors, build.degraded).sort().join(', ') || `None (rebuild)`}
|
||||
Build: ${build.buildHtmlUrl}
|
||||
Changes: ${build.changesHtmlUrl}`);
|
||||
return { logMessages, messages };
|
||||
}
|
||||
|
||||
const conclusions = ['success', 'failure']
|
||||
|
||||
function transitioned(newer: Build, older: Build) {
|
||||
const newerResult = newer.data.conclusion || 'success';
|
||||
const olderResult = older.data.conclusion || 'success';
|
||||
if (newerResult === olderResult) {
|
||||
return false;
|
||||
}
|
||||
if (conclusions.indexOf(newerResult) > conclusions.indexOf(olderResult)) {
|
||||
newer.degraded = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
async function compareCommits(octokit: Octokit, owner: string, repo: string, base: string, head: string) {
|
||||
return octokit.repos.compareCommits({ owner, repo, base, head });
|
||||
}
|
||||
|
||||
function githubToSlackUsers(githubToAccounts: Record<string, Accounts>, githubUsers: string[], at?: boolean) {
|
||||
return githubUsers.map(g => githubToAccounts[g] ? `${at ? '@' : ''}${githubToAccounts[g].slack}` : g);
|
||||
}
|
||||
|
||||
interface Accounts {
|
||||
github: string;
|
||||
slack: string;
|
||||
vsts: string;
|
||||
}
|
||||
|
||||
function githubToAccounts(accounts: Accounts[]) {
|
||||
return accounts.reduce((m, e) => {
|
||||
m[e.github] = e;
|
||||
return m;
|
||||
}, <Record<string, Accounts>>{});
|
||||
}
|
||||
|
||||
async function readAccounts() {
|
||||
const connectionString = process.env.BUILD_CHAT_STORAGE_CONNECTION_STRING;
|
||||
if (!connectionString) {
|
||||
console.error('Connection string missing.');
|
||||
return [];
|
||||
}
|
||||
const buf = await readFile(connectionString, 'config', '/', 'accounts.json');
|
||||
return JSON.parse(buf.toString()) as Accounts[];
|
||||
}
|
||||
|
||||
async function readFile(connectionString: string, share: string, directory: string, filename: string) {
|
||||
return new Promise<Buffer>((resolve, reject) => {
|
||||
const stream = new WritableStreamBuffer()
|
||||
const fileService = storage.createFileService(connectionString);
|
||||
fileService.getFileToStream(share, directory, filename, stream, err => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
const contents = stream.getContents();
|
||||
if (contents) {
|
||||
resolve(contents);
|
||||
} else {
|
||||
reject(new Error('No content'));
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
interface AllChannels {
|
||||
channels: {
|
||||
id: string;
|
||||
name: string;
|
||||
is_member: boolean;
|
||||
}[];
|
||||
}
|
||||
|
||||
async function listAllMemberships(web: WebClient) {
|
||||
const groups = await web.conversations.list({ types: 'public_channel,private_channel' }) as unknown as AllChannels;
|
||||
return groups.channels
|
||||
.filter(c => c.is_member);
|
||||
}
|
||||
|
||||
interface Build {
|
||||
data: RestEndpointMethodTypes['actions']['getWorkflowRun']['response']['data'];
|
||||
previousSourceVersion: string | undefined;
|
||||
authors: string[];
|
||||
buildHtmlUrl: string;
|
||||
changesHtmlUrl: string;
|
||||
degraded?: boolean;
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "es2017",
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"resolveJsonModule": true,
|
||||
"lib": [
|
||||
"es2017"
|
||||
],
|
||||
"sourceMap": true,
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src",
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,728 @@
|
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@actions/core@^1.2.6":
|
||||
version "1.2.6"
|
||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.6.tgz#a78d49f41a4def18e88ce47c2cac615d5694bf09"
|
||||
integrity sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==
|
||||
|
||||
"@octokit/auth-token@^2.4.4":
|
||||
version "2.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56"
|
||||
integrity sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q==
|
||||
dependencies:
|
||||
"@octokit/types" "^6.0.0"
|
||||
|
||||
"@octokit/core@^3.2.3":
|
||||
version "3.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.2.4.tgz#5791256057a962eca972e31818f02454897fd106"
|
||||
integrity sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg==
|
||||
dependencies:
|
||||
"@octokit/auth-token" "^2.4.4"
|
||||
"@octokit/graphql" "^4.5.8"
|
||||
"@octokit/request" "^5.4.12"
|
||||
"@octokit/types" "^6.0.3"
|
||||
before-after-hook "^2.1.0"
|
||||
universal-user-agent "^6.0.0"
|
||||
|
||||
"@octokit/endpoint@^6.0.1":
|
||||
version "6.0.10"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.10.tgz#741ce1fa2f4fb77ce8ebe0c6eaf5ce63f565f8e8"
|
||||
integrity sha512-9+Xef8nT7OKZglfkOMm7IL6VwxXUQyR7DUSU0LH/F7VNqs8vyd7es5pTfz9E7DwUIx7R3pGscxu1EBhYljyu7Q==
|
||||
dependencies:
|
||||
"@octokit/types" "^6.0.0"
|
||||
is-plain-object "^5.0.0"
|
||||
universal-user-agent "^6.0.0"
|
||||
|
||||
"@octokit/graphql@^4.5.8":
|
||||
version "4.5.8"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.8.tgz#d42373633c3015d0eafce64a8ce196be167fdd9b"
|
||||
integrity sha512-WnCtNXWOrupfPJgXe+vSmprZJUr0VIu14G58PMlkWGj3cH+KLZEfKMmbUQ6C3Wwx6fdhzVW1CD5RTnBdUHxhhA==
|
||||
dependencies:
|
||||
"@octokit/request" "^5.3.0"
|
||||
"@octokit/types" "^6.0.0"
|
||||
universal-user-agent "^6.0.0"
|
||||
|
||||
"@octokit/openapi-types@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-3.0.0.tgz#f73d48af2d21bf4f97fbf38fae43b54699e0dbba"
|
||||
integrity sha512-jOp1CVRw+OBJaZtG9QzZggvJXvyzgDXuW948SWsDiwmyDuCjeYCiF3TDD/qvhpF580RfP7iBIos4AVU6yhgMlA==
|
||||
|
||||
"@octokit/plugin-paginate-rest@^2.6.2":
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.8.0.tgz#2b41e12b494e895bf5fb5b12565d2c80a0ecc6ae"
|
||||
integrity sha512-HtuEQ2AYE4YFEBQN0iHmMsIvVucd5RsnwJmRKIsfAg1/ZeoMaU+jXMnTAZqIUEmcVJA27LjHUm3f1hxf8Fpdxw==
|
||||
dependencies:
|
||||
"@octokit/types" "^6.4.0"
|
||||
|
||||
"@octokit/plugin-request-log@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44"
|
||||
integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==
|
||||
|
||||
"@octokit/plugin-rest-endpoint-methods@4.4.1":
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.4.1.tgz#105cf93255432155de078c9efc33bd4e14d1cd63"
|
||||
integrity sha512-+v5PcvrUcDeFXf8hv1gnNvNLdm4C0+2EiuWt9EatjjUmfriM1pTMM+r4j1lLHxeBQ9bVDmbywb11e3KjuavieA==
|
||||
dependencies:
|
||||
"@octokit/types" "^6.1.0"
|
||||
deprecation "^2.3.1"
|
||||
|
||||
"@octokit/request-error@^2.0.0":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.4.tgz#07dd5c0521d2ee975201274c472a127917741262"
|
||||
integrity sha512-LjkSiTbsxIErBiRh5wSZvpZqT4t0/c9+4dOe0PII+6jXR+oj/h66s7E4a/MghV7iT8W9ffoQ5Skoxzs96+gBPA==
|
||||
dependencies:
|
||||
"@octokit/types" "^6.0.0"
|
||||
deprecation "^2.0.0"
|
||||
once "^1.4.0"
|
||||
|
||||
"@octokit/request@^5.3.0", "@octokit/request@^5.4.12":
|
||||
version "5.4.12"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.12.tgz#b04826fa934670c56b135a81447be2c1723a2ffc"
|
||||
integrity sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg==
|
||||
dependencies:
|
||||
"@octokit/endpoint" "^6.0.1"
|
||||
"@octokit/request-error" "^2.0.0"
|
||||
"@octokit/types" "^6.0.3"
|
||||
deprecation "^2.0.0"
|
||||
is-plain-object "^5.0.0"
|
||||
node-fetch "^2.6.1"
|
||||
once "^1.4.0"
|
||||
universal-user-agent "^6.0.0"
|
||||
|
||||
"@octokit/rest@^18.0.12":
|
||||
version "18.0.12"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.0.12.tgz#278bd41358c56d87c201e787e8adc0cac132503a"
|
||||
integrity sha512-hNRCZfKPpeaIjOVuNJzkEL6zacfZlBPV8vw8ReNeyUkVvbuCvvrrx8K8Gw2eyHHsmd4dPlAxIXIZ9oHhJfkJpw==
|
||||
dependencies:
|
||||
"@octokit/core" "^3.2.3"
|
||||
"@octokit/plugin-paginate-rest" "^2.6.2"
|
||||
"@octokit/plugin-request-log" "^1.0.2"
|
||||
"@octokit/plugin-rest-endpoint-methods" "4.4.1"
|
||||
|
||||
"@octokit/types@^6.0.0", "@octokit/types@^6.0.3", "@octokit/types@^6.1.0", "@octokit/types@^6.4.0":
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.4.0.tgz#f3f47be70bcdb3c26f2c2619f3dd0ced466a265c"
|
||||
integrity sha512-1FEmuVppZE2zG0rBdQlviRz5cp0udyI63zyhBVPrm0FRNAsQkAXU7IYWQg1XvhChFut8YbFYN1usQpk54D6/4w==
|
||||
dependencies:
|
||||
"@octokit/openapi-types" "^3.0.0"
|
||||
"@types/node" ">= 8"
|
||||
|
||||
"@slack/logger@>=1.0.0 <3.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@slack/logger/-/logger-2.0.0.tgz#6a4e1c755849bc0f66dac08a8be54ce790ec0e6b"
|
||||
integrity sha512-OkIJpiU2fz6HOJujhlhfIGrc8hB4ibqtf7nnbJQDerG0BqwZCfmgtK5sWzZ0TkXVRBKD5MpLrTmCYyMxoMCgPw==
|
||||
dependencies:
|
||||
"@types/node" ">=8.9.0"
|
||||
|
||||
"@slack/types@^1.7.0":
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@slack/types/-/types-1.10.0.tgz#cbf7d83e1027f4cbfd13d6b429f120c7fb09127a"
|
||||
integrity sha512-tA7GG7Tj479vojfV3AoxbckalA48aK6giGjNtgH6ihpLwTyHE3fIgRrvt8TWfLwW8X8dyu7vgmAsGLRG7hWWOg==
|
||||
|
||||
"@slack/web-api@^6.0.0":
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@slack/web-api/-/web-api-6.0.0.tgz#14c65ed73c66a187e5f20e12c3898dfd8d5cbf7c"
|
||||
integrity sha512-YD1wqWuzrYPf4RQyD7OnYS5lImUmNWn+G5V6Qt0N97fPYxqhT72YJtRdSnsTc3VkH5R5imKOhYxb+wqI9hiHnA==
|
||||
dependencies:
|
||||
"@slack/logger" ">=1.0.0 <3.0.0"
|
||||
"@slack/types" "^1.7.0"
|
||||
"@types/is-stream" "^1.1.0"
|
||||
"@types/node" ">=12.0.0"
|
||||
axios "^0.21.1"
|
||||
eventemitter3 "^3.1.0"
|
||||
form-data "^2.5.0"
|
||||
is-stream "^1.1.0"
|
||||
p-queue "^6.6.1"
|
||||
p-retry "^4.0.0"
|
||||
|
||||
"@types/is-stream@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/is-stream/-/is-stream-1.1.0.tgz#b84d7bb207a210f2af9bed431dc0fbe9c4143be1"
|
||||
integrity sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/node@*", "@types/node@>= 8", "@types/node@>=12.0.0", "@types/node@>=8.9.0", "@types/node@^14.14.22":
|
||||
version "14.14.22"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18"
|
||||
integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==
|
||||
|
||||
"@types/retry@^0.12.0":
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
|
||||
integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
|
||||
|
||||
"@types/stream-buffers@^3.0.3":
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/stream-buffers/-/stream-buffers-3.0.3.tgz#34e565bf64e3e4bdeee23fd4aa58d4636014a02b"
|
||||
integrity sha512-NeFeX7YfFZDYsCfbuaOmFQ0OjSmHreKBpp7MQ4alWQBHeh2USLsj7qyMyn9t82kjqIX516CR/5SRHnARduRtbQ==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
ajv@^6.12.3:
|
||||
version "6.12.6"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.1"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.4.1"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
asn1@~0.2.3:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
|
||||
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
|
||||
dependencies:
|
||||
safer-buffer "~2.1.0"
|
||||
|
||||
assert-plus@1.0.0, assert-plus@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
|
||||
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
||||
|
||||
aws-sign2@~0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
||||
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
|
||||
|
||||
aws4@^1.8.0:
|
||||
version "1.11.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
|
||||
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
|
||||
|
||||
axios@^0.21.1:
|
||||
version "0.21.1"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
|
||||
integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
|
||||
dependencies:
|
||||
follow-redirects "^1.10.0"
|
||||
|
||||
azure-storage@^2.10.3:
|
||||
version "2.10.3"
|
||||
resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.10.3.tgz#c5966bf929d87587d78f6847040ea9a4b1d4a50a"
|
||||
integrity sha512-IGLs5Xj6kO8Ii90KerQrrwuJKexLgSwYC4oLWmc11mzKe7Jt2E5IVg+ZQ8K53YWZACtVTMBNO3iGuA+4ipjJxQ==
|
||||
dependencies:
|
||||
browserify-mime "~1.2.9"
|
||||
extend "^3.0.2"
|
||||
json-edm-parser "0.1.2"
|
||||
md5.js "1.3.4"
|
||||
readable-stream "~2.0.0"
|
||||
request "^2.86.0"
|
||||
underscore "~1.8.3"
|
||||
uuid "^3.0.0"
|
||||
validator "~9.4.1"
|
||||
xml2js "0.2.8"
|
||||
xmlbuilder "^9.0.7"
|
||||
|
||||
bcrypt-pbkdf@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
|
||||
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
|
||||
dependencies:
|
||||
tweetnacl "^0.14.3"
|
||||
|
||||
before-after-hook@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635"
|
||||
integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
|
||||
|
||||
browserify-mime@~1.2.9:
|
||||
version "1.2.9"
|
||||
resolved "https://registry.yarnpkg.com/browserify-mime/-/browserify-mime-1.2.9.tgz#aeb1af28de6c0d7a6a2ce40adb68ff18422af31f"
|
||||
integrity sha1-rrGvKN5sDXpqLOQK22j/GEIq8x8=
|
||||
|
||||
caseless@~0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
|
||||
|
||||
combined-stream@^1.0.6, combined-stream@~1.0.6:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||
|
||||
dashdash@^1.12.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
||||
integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
|
||||
|
||||
deprecation@^2.0.0, deprecation@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
|
||||
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
|
||||
|
||||
ecc-jsbn@~0.1.1:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
||||
integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
|
||||
dependencies:
|
||||
jsbn "~0.1.0"
|
||||
safer-buffer "^2.1.0"
|
||||
|
||||
eventemitter3@^3.1.0:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
|
||||
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
|
||||
|
||||
eventemitter3@^4.0.4:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
|
||||
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
|
||||
|
||||
extend@^3.0.2, extend@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
||||
|
||||
extsprintf@1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
|
||||
|
||||
extsprintf@^1.2.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
||||
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
|
||||
|
||||
fast-deep-equal@^3.1.1:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
||||
|
||||
fast-json-stable-stringify@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
||||
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
||||
|
||||
follow-redirects@^1.10.0:
|
||||
version "1.13.1"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7"
|
||||
integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==
|
||||
|
||||
forever-agent@~0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
||||
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
||||
|
||||
form-data@^2.5.0:
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4"
|
||||
integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.6"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
form-data@~2.3.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
|
||||
integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.6"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
getpass@^0.1.1:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
||||
integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
har-schema@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
||||
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
|
||||
|
||||
har-validator@~5.1.3:
|
||||
version "5.1.5"
|
||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
|
||||
integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
|
||||
dependencies:
|
||||
ajv "^6.12.3"
|
||||
har-schema "^2.0.0"
|
||||
|
||||
hash-base@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
|
||||
integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
|
||||
dependencies:
|
||||
inherits "^2.0.4"
|
||||
readable-stream "^3.6.0"
|
||||
safe-buffer "^5.2.0"
|
||||
|
||||
http-signature@~1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
|
||||
integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
jsprim "^1.2.2"
|
||||
sshpk "^1.7.0"
|
||||
|
||||
inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
|
||||
is-plain-object@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
|
||||
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
|
||||
|
||||
is-stream@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
|
||||
|
||||
is-typedarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
||||
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
|
||||
|
||||
isarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||
|
||||
isstream@~0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
|
||||
|
||||
jsbn@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
|
||||
|
||||
json-edm-parser@0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/json-edm-parser/-/json-edm-parser-0.1.2.tgz#1e60b0fef1bc0af67bc0d146dfdde5486cd615b4"
|
||||
integrity sha1-HmCw/vG8CvZ7wNFG393lSGzWFbQ=
|
||||
dependencies:
|
||||
jsonparse "~1.2.0"
|
||||
|
||||
json-schema-traverse@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
||||
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
|
||||
|
||||
json-schema@0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
|
||||
|
||||
json-stringify-safe@~5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
|
||||
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
|
||||
|
||||
jsonparse@~1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.2.0.tgz#5c0c5685107160e72fe7489bddea0b44c2bc67bd"
|
||||
integrity sha1-XAxWhRBxYOcv50ib3eoLRMK8Z70=
|
||||
|
||||
jsprim@^1.2.2:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||
integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
|
||||
dependencies:
|
||||
assert-plus "1.0.0"
|
||||
extsprintf "1.3.0"
|
||||
json-schema "0.2.3"
|
||||
verror "1.10.0"
|
||||
|
||||
md5.js@1.3.4:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
|
||||
integrity sha1-6b296UogpawYsENA/Fdk1bCdkB0=
|
||||
dependencies:
|
||||
hash-base "^3.0.0"
|
||||
inherits "^2.0.1"
|
||||
|
||||
mime-db@1.45.0:
|
||||
version "1.45.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
|
||||
integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.19:
|
||||
version "2.1.28"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
|
||||
integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
|
||||
dependencies:
|
||||
mime-db "1.45.0"
|
||||
|
||||
node-fetch@^2.6.1:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
|
||||
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
|
||||
|
||||
oauth-sign@~0.9.0:
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
|
||||
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
|
||||
|
||||
once@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
p-finally@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
|
||||
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
|
||||
|
||||
p-queue@^6.6.1:
|
||||
version "6.6.2"
|
||||
resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426"
|
||||
integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==
|
||||
dependencies:
|
||||
eventemitter3 "^4.0.4"
|
||||
p-timeout "^3.2.0"
|
||||
|
||||
p-retry@^4.0.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.2.0.tgz#ea9066c6b44f23cab4cd42f6147cdbbc6604da5d"
|
||||
integrity sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==
|
||||
dependencies:
|
||||
"@types/retry" "^0.12.0"
|
||||
retry "^0.12.0"
|
||||
|
||||
p-timeout@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
|
||||
integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
|
||||
dependencies:
|
||||
p-finally "^1.0.0"
|
||||
|
||||
performance-now@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
|
||||
|
||||
process-nextick-args@~1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||
integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
|
||||
|
||||
psl@^1.1.28:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
|
||||
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
|
||||
|
||||
punycode@^2.1.0, punycode@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
||||
|
||||
qs@~6.5.2:
|
||||
version "6.5.2"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
|
||||
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
|
||||
|
||||
readable-stream@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
||||
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
string_decoder "^1.1.1"
|
||||
util-deprecate "^1.0.1"
|
||||
|
||||
readable-stream@~2.0.0:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
|
||||
integrity sha1-j5A0HmilPMySh4jaz80Rs265t44=
|
||||
dependencies:
|
||||
core-util-is "~1.0.0"
|
||||
inherits "~2.0.1"
|
||||
isarray "~1.0.0"
|
||||
process-nextick-args "~1.0.6"
|
||||
string_decoder "~0.10.x"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
request@^2.86.0:
|
||||
version "2.88.2"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
|
||||
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
|
||||
dependencies:
|
||||
aws-sign2 "~0.7.0"
|
||||
aws4 "^1.8.0"
|
||||
caseless "~0.12.0"
|
||||
combined-stream "~1.0.6"
|
||||
extend "~3.0.2"
|
||||
forever-agent "~0.6.1"
|
||||
form-data "~2.3.2"
|
||||
har-validator "~5.1.3"
|
||||
http-signature "~1.2.0"
|
||||
is-typedarray "~1.0.0"
|
||||
isstream "~0.1.2"
|
||||
json-stringify-safe "~5.0.1"
|
||||
mime-types "~2.1.19"
|
||||
oauth-sign "~0.9.0"
|
||||
performance-now "^2.1.0"
|
||||
qs "~6.5.2"
|
||||
safe-buffer "^5.1.2"
|
||||
tough-cookie "~2.5.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
uuid "^3.3.2"
|
||||
|
||||
retry@^0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
|
||||
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
|
||||
|
||||
safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||
|
||||
safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sax@0.5.x:
|
||||
version "0.5.8"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
|
||||
integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=
|
||||
|
||||
sshpk@^1.7.0:
|
||||
version "1.16.1"
|
||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
|
||||
integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
|
||||
dependencies:
|
||||
asn1 "~0.2.3"
|
||||
assert-plus "^1.0.0"
|
||||
bcrypt-pbkdf "^1.0.0"
|
||||
dashdash "^1.12.0"
|
||||
ecc-jsbn "~0.1.1"
|
||||
getpass "^0.1.1"
|
||||
jsbn "~0.1.0"
|
||||
safer-buffer "^2.0.2"
|
||||
tweetnacl "~0.14.0"
|
||||
|
||||
stream-buffers@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521"
|
||||
integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==
|
||||
|
||||
string_decoder@^1.1.1:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
|
||||
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
||||
dependencies:
|
||||
safe-buffer "~5.2.0"
|
||||
|
||||
string_decoder@~0.10.x:
|
||||
version "0.10.31"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
||||
integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
|
||||
|
||||
tough-cookie@~2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
|
||||
integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
|
||||
dependencies:
|
||||
psl "^1.1.28"
|
||||
punycode "^2.1.1"
|
||||
|
||||
tunnel-agent@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
||||
integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
|
||||
dependencies:
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
||||
version "0.14.5"
|
||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||
|
||||
typescript@^4.1.3:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7"
|
||||
integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==
|
||||
|
||||
underscore@~1.8.3:
|
||||
version "1.8.3"
|
||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
|
||||
integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=
|
||||
|
||||
universal-user-agent@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee"
|
||||
integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==
|
||||
|
||||
uri-js@^4.2.2:
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
|
||||
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
|
||||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
||||
|
||||
uuid@^3.0.0, uuid@^3.3.2:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
||||
|
||||
validator@~9.4.1:
|
||||
version "9.4.1"
|
||||
resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
|
||||
integrity sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA==
|
||||
|
||||
verror@1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
||||
integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
core-util-is "1.0.2"
|
||||
extsprintf "^1.2.0"
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
|
||||
xml2js@0.2.8:
|
||||
version "0.2.8"
|
||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.2.8.tgz#9b81690931631ff09d1957549faf54f4f980b3c2"
|
||||
integrity sha1-m4FpCTFjH/CdGVdUn69U9PmAs8I=
|
||||
dependencies:
|
||||
sax "0.5.x"
|
||||
|
||||
xmlbuilder@^9.0.7:
|
||||
version "9.0.7"
|
||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
|
||||
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
|
|
@ -57,7 +57,7 @@
|
|||
"editor-theming": {"assign": []},
|
||||
"editor-wordnav": {"assign": ["alexdima"]},
|
||||
"editor-wrapping": {"assign": ["alexdima"]},
|
||||
"emmet": {"assign": []},
|
||||
"emmet": {"assign": ["rzhao271"]},
|
||||
"error-list": {"assign": ["sandy081"]},
|
||||
"explorer-custom": {"assign": ["sandy081"]},
|
||||
"extension-host": {"assign": []},
|
||||
|
@ -172,7 +172,7 @@
|
|||
"workbench-tabs": {"assign": ["bpasero"]},
|
||||
"workbench-touchbar": {"assign": ["bpasero"]},
|
||||
"workbench-views": {"assign": ["sbatten"]},
|
||||
"workbench-welcome": {"assign": ["chrmarti"]},
|
||||
"workbench-welcome": {"assign": ["JacksonKearl"]},
|
||||
"workbench-window": {"assign": ["bpasero"]},
|
||||
"workbench-zen": {"assign": ["isidorn"]},
|
||||
"workspace-edit": {"assign": ["jrieken"]},
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
"type": "label",
|
||||
"name": "*duplicate",
|
||||
"action": "close",
|
||||
"comment": "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues [here](https://aka.ms/vscodeissuesearch). See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
|
||||
"comment": "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues [here](${duplicateQuery}). See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!-- Thank you for submitting a Pull Request. Please:
|
||||
* Read our Pull Request guidelines:
|
||||
https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests.
|
||||
https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests
|
||||
* Associate an issue with the Pull Request.
|
||||
* Ensure that the code is up-to-date with the `master` branch.
|
||||
* Include a description of the proposed changes and how to test them.
|
||||
|
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'author-verification-requested')
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
name: "Build Chat"
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows:
|
||||
- CI
|
||||
types:
|
||||
- completed
|
||||
branches:
|
||||
- master
|
||||
- release/*
|
||||
|
||||
jobs:
|
||||
main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node.js 12.x
|
||||
uses: actions/setup-node@v1.4.4
|
||||
with:
|
||||
node-version: "12.x"
|
||||
|
||||
- name: Build
|
||||
run: yarn install && yarn run build
|
||||
working-directory: .github/actions/build-chat
|
||||
|
||||
- name: Build Chat
|
||||
uses: ./.github/actions/build-chat
|
||||
with:
|
||||
workflow_run_url: ${{ github.event.workflow_run.url }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}
|
||||
BUILD_CHAT_STORAGE_CONNECTION_STRING: ${{ secrets.BUILD_CHAT_STORAGE_CONNECTION_STRING }}
|
|
@ -11,134 +11,269 @@ on:
|
|||
- release/*
|
||||
|
||||
jobs:
|
||||
# linux:
|
||||
# runs-on: ubuntu-latest
|
||||
# env:
|
||||
# CHILD_CONCURRENCY: "1"
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# steps:
|
||||
# - uses: actions/checkout@v1
|
||||
# # TODO: rename azure-pipelines/linux/xvfb.init to github-actions
|
||||
# - run: |
|
||||
# sudo apt-get update
|
||||
# sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
||||
# sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
# sudo chmod +x /etc/init.d/xvfb
|
||||
# sudo update-rc.d xvfb defaults
|
||||
# sudo service xvfb start
|
||||
# name: Setup Build Environment
|
||||
# - uses: actions/setup-node@v1
|
||||
# with:
|
||||
# node-version: 10
|
||||
# # TODO: cache node modules
|
||||
# - run: yarn --frozen-lockfile
|
||||
# name: Install Dependencies
|
||||
# - run: yarn electron x64
|
||||
# name: Download Electron
|
||||
# - run: yarn gulp hygiene
|
||||
# name: Run Hygiene Checks
|
||||
# - run: yarn monaco-compile-check
|
||||
# name: Run Monaco Editor Checks
|
||||
# - run: yarn valid-layers-check
|
||||
# name: Run Valid Layers Checks
|
||||
# - run: yarn compile
|
||||
# name: Compile Sources
|
||||
# - run: yarn download-builtin-extensions
|
||||
# name: Download Built-in Extensions
|
||||
# - run: DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
|
||||
# name: Run Unit Tests (Electron)
|
||||
# - run: DISPLAY=:10 yarn test-browser --browser chromium
|
||||
# name: Run Unit Tests (Browser)
|
||||
# - run: DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests"
|
||||
# name: Run Integration Tests (Electron)
|
||||
|
||||
# windows:
|
||||
# runs-on: windows-2016
|
||||
# env:
|
||||
# CHILD_CONCURRENCY: "1"
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# steps:
|
||||
# - uses: actions/checkout@v1
|
||||
# - uses: actions/setup-node@v1
|
||||
# with:
|
||||
# node-version: 10
|
||||
# - uses: actions/setup-python@v1
|
||||
# with:
|
||||
# python-version: '2.x'
|
||||
# - run: yarn --frozen-lockfile
|
||||
# name: Install Dependencies
|
||||
# - run: yarn electron
|
||||
# name: Download Electron
|
||||
# - run: yarn gulp hygiene
|
||||
# name: Run Hygiene Checks
|
||||
# - run: yarn monaco-compile-check
|
||||
# name: Run Monaco Editor Checks
|
||||
# - run: yarn valid-layers-check
|
||||
# name: Run Valid Layers Checks
|
||||
# - run: yarn compile
|
||||
# name: Compile Sources
|
||||
# - run: yarn download-builtin-extensions
|
||||
# name: Download Built-in Extensions
|
||||
# - run: .\scripts\test.bat --tfs "Unit Tests"
|
||||
# name: Run Unit Tests (Electron)
|
||||
# - run: yarn test-browser --browser chromium
|
||||
# name: Run Unit Tests (Browser)
|
||||
# - run: .\scripts\test-integration.bat --tfs "Integration Tests"
|
||||
# name: Run Integration Tests (Electron)
|
||||
|
||||
# darwin:
|
||||
# runs-on: macos-latest
|
||||
# env:
|
||||
# CHILD_CONCURRENCY: "1"
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# steps:
|
||||
# - uses: actions/checkout@v1
|
||||
# - uses: actions/setup-node@v1
|
||||
# with:
|
||||
# node-version: 10
|
||||
# - run: yarn --frozen-lockfile
|
||||
# name: Install Dependencies
|
||||
# - run: yarn electron x64
|
||||
# name: Download Electron
|
||||
# - run: yarn gulp hygiene
|
||||
# name: Run Hygiene Checks
|
||||
# - run: yarn monaco-compile-check
|
||||
# name: Run Monaco Editor Checks
|
||||
# - run: yarn valid-layers-check
|
||||
# name: Run Valid Layers Checks
|
||||
# - run: yarn compile
|
||||
# name: Compile Sources
|
||||
# - run: yarn download-builtin-extensions
|
||||
# name: Download Built-in Extensions
|
||||
# - run: ./scripts/test.sh --tfs "Unit Tests"
|
||||
# name: Run Unit Tests (Electron)
|
||||
# - run: yarn test-browser --browser chromium --browser webkit
|
||||
# name: Run Unit Tests (Browser)
|
||||
# - run: ./scripts/test-integration.sh --tfs "Integration Tests"
|
||||
# name: Run Integration Tests (Electron)
|
||||
|
||||
monaco:
|
||||
runs-on: ubuntu-latest
|
||||
windows:
|
||||
name: Windows
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
CHILD_CONCURRENCY: "1"
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: "2.x"
|
||||
|
||||
- name: Compute node modules cache key
|
||||
id: nodeModulesCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
|
||||
- name: Cache node_modules archive
|
||||
id: cacheNodeModules
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ".build/node_modules_cache"
|
||||
key: "${{ runner.os }}-cacheNodeModulesArchive-${{ steps.nodeModulesCacheKey.outputs.value }}"
|
||||
- name: Extract node_modules archive
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit == 'true' }}
|
||||
run: 7z.exe x .build/node_modules_cache/cache.7z -aos
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: Cache yarn directory
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-yarnCacheDir-
|
||||
- name: Execute yarn
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
run: yarn --frozen-lockfile --network-timeout 180000
|
||||
- name: Create node_modules archive
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
run: |
|
||||
mkdir -Force .build
|
||||
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
|
||||
mkdir -Force .build/node_modules_cache
|
||||
7z.exe a .build/node_modules_cache/cache.7z -mx3 `@.build/node_modules_list.txt
|
||||
|
||||
- name: Compile and Download
|
||||
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions
|
||||
|
||||
- name: Run Unit Tests (Electron)
|
||||
run: .\scripts\test.bat
|
||||
|
||||
- name: Run Unit Tests (Browser)
|
||||
run: yarn test-browser --browser chromium
|
||||
|
||||
- name: Run Integration Tests (Electron)
|
||||
run: .\scripts\test-integration.bat
|
||||
|
||||
linux:
|
||||
name: Linux
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
# TODO: rename azure-pipelines/linux/xvfb.init to github-actions
|
||||
- run: |
|
||||
- name: Setup Build Environment
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
||||
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
sudo chmod +x /etc/init.d/xvfb
|
||||
sudo update-rc.d xvfb defaults
|
||||
sudo service xvfb start
|
||||
name: Setup Build Environment
|
||||
- uses: actions/setup-node@v1
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 10
|
||||
- run: yarn --frozen-lockfile
|
||||
name: Install Dependencies
|
||||
- run: yarn monaco-compile-check
|
||||
name: Run Monaco Editor Checks
|
||||
- run: yarn gulp editor-esm-bundle
|
||||
name: Editor Distro & ESM Bundle
|
||||
node-version: 12
|
||||
|
||||
- name: Compute node modules cache key
|
||||
id: nodeModulesCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
|
||||
- name: Cache node modules
|
||||
id: cacheNodeModules
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: "**/node_modules"
|
||||
key: ${{ runner.os }}-cacheNodeModules11-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-cacheNodeModules11-
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: Cache yarn directory
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-yarnCacheDir-
|
||||
- name: Execute yarn
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
run: yarn --frozen-lockfile --network-timeout 180000
|
||||
|
||||
- name: Compile and Download
|
||||
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions
|
||||
|
||||
- name: Run Unit Tests (Electron)
|
||||
id: electron-unit-tests
|
||||
run: DISPLAY=:10 ./scripts/test.sh
|
||||
|
||||
- name: Run Unit Tests (Browser)
|
||||
id: browser-unit-tests
|
||||
run: DISPLAY=:10 yarn test-browser --browser chromium
|
||||
|
||||
- name: Run Integration Tests (Electron)
|
||||
id: electron-integration-tests
|
||||
run: DISPLAY=:10 ./scripts/test-integration.sh
|
||||
|
||||
darwin:
|
||||
name: macOS
|
||||
runs-on: macos-latest
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
|
||||
- name: Compute node modules cache key
|
||||
id: nodeModulesCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
|
||||
- name: Cache node modules
|
||||
id: cacheNodeModules
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: "**/node_modules"
|
||||
key: ${{ runner.os }}-cacheNodeModules11-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-cacheNodeModules11-
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: Cache yarn directory
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-yarnCacheDir-
|
||||
- name: Execute yarn
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
run: yarn --frozen-lockfile --network-timeout 180000
|
||||
|
||||
- name: Compile and Download
|
||||
run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions
|
||||
|
||||
- name: Run Unit Tests (Electron)
|
||||
run: DISPLAY=:10 ./scripts/test.sh
|
||||
|
||||
- name: Run Unit Tests (Browser)
|
||||
run: DISPLAY=:10 yarn test-browser --browser chromium
|
||||
|
||||
- name: Run Integration Tests (Electron)
|
||||
run: DISPLAY=:10 ./scripts/test-integration.sh
|
||||
|
||||
hygiene:
|
||||
name: Hygiene, Layering and Monaco Editor
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
|
||||
- name: Compute node modules cache key
|
||||
id: nodeModulesCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)"
|
||||
- name: Cache node modules
|
||||
id: cacheNodeModules
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: "**/node_modules"
|
||||
key: ${{ runner.os }}-cacheNodeModules11-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-cacheNodeModules11-
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: Cache yarn directory
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }}
|
||||
restore-keys: ${{ runner.os }}-yarnCacheDir-
|
||||
- name: Execute yarn
|
||||
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
run: yarn --frozen-lockfile --network-timeout 180000
|
||||
|
||||
- name: Run Hygiene Checks
|
||||
run: yarn gulp hygiene
|
||||
|
||||
- name: Run Valid Layers Checks
|
||||
run: yarn valid-layers-check
|
||||
|
||||
- name: Run Monaco Editor Checks
|
||||
run: yarn monaco-compile-check
|
||||
|
||||
- name: Editor Distro & ESM Bundle
|
||||
run: yarn gulp editor-esm-bundle
|
||||
|
||||
- name: Typings validation prep
|
||||
run: |
|
||||
mkdir typings-test
|
||||
|
||||
- name: Typings validation
|
||||
working-directory: ./typings-test
|
||||
run: |
|
||||
yarn init -yp
|
||||
../node_modules/.bin/tsc --init
|
||||
echo "import '../out-monaco-editor-core';" > a.ts
|
||||
../node_modules/.bin/tsc --noEmit
|
||||
|
||||
- name: Webpack Editor
|
||||
working-directory: ./test/monaco
|
||||
run: yarn run bundle
|
||||
|
||||
- name: Compile Editor Tests
|
||||
working-directory: ./test/monaco
|
||||
run: yarn run compile
|
||||
|
||||
- name: Download Playwright
|
||||
run: yarn playwright-install
|
||||
|
||||
- name: Run Editor Tests
|
||||
timeout-minutes: 5
|
||||
working-directory: ./test/monaco
|
||||
run: yarn test
|
||||
|
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
path: ./actions
|
||||
ref: v41
|
||||
ref: v42
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
- name: Run Commands
|
||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
if: contains(github.event.issue.labels.*.name, '*english-please')
|
||||
|
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
path: ./actions
|
||||
ref: v41
|
||||
ref: v42
|
||||
- name: Install Actions
|
||||
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'feature-request')
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
path: ./actions
|
||||
ref: v41
|
||||
ref: v42
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
- name: Install Storage Module
|
||||
|
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
path: ./actions
|
||||
ref: v41
|
||||
ref: v42
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
- name: Run Locker
|
||||
|
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
path: ./actions
|
||||
ref: v41
|
||||
ref: v42
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
- name: Run Needs More Info Closer
|
||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
ref: v41
|
||||
ref: v42
|
||||
path: ./actions
|
||||
- name: Checkout Repo
|
||||
if: github.event_name != 'issues'
|
||||
|
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
with:
|
||||
repository: "microsoft/vscode-github-triage-actions"
|
||||
path: ./actions
|
||||
ref: v41
|
||||
ref: v42
|
||||
- name: Install Actions
|
||||
if: contains(github.event.issue.labels.*.name, 'testplan-item') || contains(github.event.issue.labels.*.name, 'invalid-testplan-item')
|
||||
run: npm install --production --prefix ./actions
|
||||
|
|
|
@ -5,26 +5,8 @@ Thumbs.db
|
|||
node_modules/
|
||||
.build/
|
||||
extensions/**/dist/
|
||||
out/
|
||||
out-build/
|
||||
out-editor/
|
||||
out-editor-src/
|
||||
out-editor-build/
|
||||
out-editor-esm/
|
||||
out-editor-esm-bundle/
|
||||
out-editor-min/
|
||||
out-monaco-editor-core/
|
||||
out-vscode/
|
||||
out-vscode-min/
|
||||
out-vscode-reh/
|
||||
out-vscode-reh-min/
|
||||
out-vscode-reh-pkg/
|
||||
out-vscode-reh-web/
|
||||
out-vscode-reh-web-min/
|
||||
out-vscode-reh-web-pkg/
|
||||
out-vscode-web/
|
||||
out-vscode-web-min/
|
||||
out-vscode-web-pkg/
|
||||
/out*/
|
||||
/extensions/**/out/
|
||||
src/vs/server
|
||||
resources/server
|
||||
build/node_modules
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// for the documentation about the extensions.json format
|
||||
"recommendations": [
|
||||
"dbaeumer.vscode-eslint",
|
||||
"EditorConfig.EditorConfig",
|
||||
"msjsdiag.debugger-for-chrome"
|
||||
"EditorConfig.EditorConfig"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -203,7 +203,7 @@
|
|||
{
|
||||
"type": "pwa-chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch VS Code",
|
||||
"name": "Launch VS Code Internal",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/code.bat"
|
||||
},
|
||||
|
@ -235,7 +235,9 @@
|
|||
"${workspaceFolder}/out/**/*.js"
|
||||
],
|
||||
"browserLaunchLocation": "workspace",
|
||||
"preLaunchTask": "Ensure Prelaunch Dependencies",
|
||||
"presentation": {
|
||||
"hidden": true,
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
|
@ -472,7 +474,7 @@
|
|||
"name": "VS Code",
|
||||
"stopAll": true,
|
||||
"configurations": [
|
||||
"Launch VS Code",
|
||||
"Launch VS Code Internal",
|
||||
"Attach to Main Process",
|
||||
"Attach to Extension Host",
|
||||
"Attach to Shared Process",
|
||||
|
@ -486,7 +488,7 @@
|
|||
{
|
||||
"name": "Search and Renderer processes",
|
||||
"configurations": [
|
||||
"Launch VS Code",
|
||||
"Launch VS Code Internal",
|
||||
"Attach to Search Process"
|
||||
],
|
||||
"presentation": {
|
||||
|
@ -497,7 +499,7 @@
|
|||
{
|
||||
"name": "Renderer and Extension Host processes",
|
||||
"configurations": [
|
||||
"Launch VS Code",
|
||||
"Launch VS Code Internal",
|
||||
"Attach to Extension Host"
|
||||
],
|
||||
"presentation": {
|
||||
|
@ -526,6 +528,14 @@
|
|||
"group": "1_vscode",
|
||||
"order": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Launch VS Code",
|
||||
"stopAll": true,
|
||||
"configurations": [
|
||||
"Launch VS Code Internal",
|
||||
],
|
||||
"preLaunchTask": "Ensure Prelaunch Dependencies"
|
||||
},
|
||||
]
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"November 2020\"",
|
||||
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"January 2021\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server\n\n$MILESTONE=milestone:\"November 2020\"",
|
||||
"editable": false
|
||||
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server repo:microsoft/vscode-emmet-helper\n\n$MILESTONE=milestone:\"January 2021\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
|
@ -92,7 +92,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$REPOS $MILESTONE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
|
||||
"value": "$REPOS $MILESTONE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found -label:z-author-verified -label:unreleased",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
|
@ -104,7 +104,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$REPOS $MILESTONE label:candidate",
|
||||
"value": "$REPOS $MILESTONE is:open label:candidate",
|
||||
"editable": true
|
||||
}
|
||||
]
|
|
@ -8,8 +8,8 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server\n\n$MILESTONE=milestone:\"November 2020\"\n\n$MINE=assignee:@me",
|
||||
"editable": false
|
||||
"value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-js-debug repo:microsoft/vscode-remote-release repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-settings-sync-server\n\n$MILESTONE=milestone:\"January 2021\"\n\n$MINE=assignee:@me",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
|
@ -176,7 +176,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
|
||||
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
|
@ -188,7 +188,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found -author:aeschli -author:alexdima -author:alexr00 -author:AmandaSilver -author:bamurtaugh -author:bpasero -author:btholt -author:chrisdias -author:chrmarti -author:Chuxel -author:connor4312 -author:dbaeumer -author:deepak1556 -author:devinvalenciano -author:digitarald -author:eamodio -author:egamma -author:fiveisprime -author:gregvanl -author:isidorn -author:ItalyPaleAle -author:JacksonKearl -author:joaomoreno -author:jrieken -author:kieferrm -author:lszomoru -author:meganrogge -author:misolori -author:mjbvz -author:ornellaalt -author:orta -author:rebornix -author:RMacfarlane -author:roblourens -author:rzhao271 -author:sana-ajani -author:sandy081 -author:sbatten -author:stevencl -author:Tyriar -author:weinand",
|
||||
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found -author:aeschli -author:alexdima -author:alexr00 -author:AmandaSilver -author:bamurtaugh -author:bpasero -author:btholt -author:chrisdias -author:chrmarti -author:Chuxel -author:connor4312 -author:dbaeumer -author:deepak1556 -author:devinvalenciano -author:digitarald -author:eamodio -author:egamma -author:fiveisprime -author:gregvanl -author:isidorn -author:ItalyPaleAle -author:JacksonKearl -author:joaomoreno -author:jrieken -author:kieferrm -author:lszomoru -author:meganrogge -author:misolori -author:mjbvz -author:ornellaalt -author:orta -author:rebornix -author:RMacfarlane -author:roblourens -author:rzhao271 -author:sana-ajani -author:sandy081 -author:sbatten -author:stevencl -author:Tyriar -author:weinand -author:TylerLeonhardt -author:lramos15",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
|
@ -200,7 +200,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed -author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
|
||||
"value": "$REPOS $MILESTONE -$MINE is:issue is:closed -author:@me sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-internalbacklog\n\n// current milestone name\n$milestone=milestone:\"November 2020\"",
|
||||
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-internalbacklog\n\n// current milestone name\n$milestone=milestone:\"January 2021\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
|
@ -83,6 +83,24 @@
|
|||
"value": "$repos assignee:@me is:open milestone:\"Backlog Candidates\"",
|
||||
"editable": false
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "### Personal Inbox\n",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "\n#### Missing Type label",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos assignee:@me is:open type:issue -label:bug -label:\"needs more info\" -label:feature-request -label:under-discussion -label:debt -label:plan-item -label:upstream",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
[
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "## Papercuts\n\nThis notebook serves as an ongoing collection of paper cut issues that we encounter while dogfooding. With that in mind only promote issues that really turn you off, e.g issues that make you wanna stop use VS Code or its extensions. To mark an issue (bug, feature-request, etc) as paper cut add the labels: `papercut :drop_of_blood:`",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "## All Papercuts\n\nThese are all papercut issues that we encounter while dogfoodingf vscode or extensions that we author. ",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "repo:microsoft/vscode is:open -label:notebook label:\"papercut :drop_of_blood:\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "## Native Notebook",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "repo:microsoft/vscode is:open label:notebook label:\"papercut :drop_of_blood:\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "### My Papercuts",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "repo:microsoft/vscode is:open assignee:@me label:\"papercut :drop_of_blood:\"",
|
||||
"editable": true
|
||||
}
|
||||
]
|
|
@ -14,7 +14,7 @@
|
|||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"November 2020\"",
|
||||
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"January 2021\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
|
|
|
@ -71,10 +71,12 @@
|
|||
"files.insertFinalNewline": false,
|
||||
},
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features",
|
||||
"editor.formatOnSave": true,
|
||||
},
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features",
|
||||
"editor.formatOnSave": true,
|
||||
},
|
||||
"typescript.tsc.autoDetect": "off"
|
||||
}
|
||||
|
|
|
@ -62,7 +62,8 @@
|
|||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
|
@ -90,7 +91,8 @@
|
|||
"Kill Build VS Code Core",
|
||||
"Kill Build VS Code Extensions"
|
||||
],
|
||||
"group": "build"
|
||||
"group": "build",
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
|
@ -203,7 +205,7 @@
|
|||
"base": "$tsc",
|
||||
"applyTo": "allDocuments",
|
||||
"owner": "tsec"
|
||||
},
|
||||
}
|
||||
],
|
||||
"group": "build",
|
||||
"label": "npm: tsec-compile-check",
|
||||
|
|
2
.yarnrc
2
.yarnrc
|
@ -1,3 +1,3 @@
|
|||
disturl "https://electronjs.org/headers"
|
||||
target "9.3.5"
|
||||
target "11.2.1"
|
||||
runtime "electron"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# Visual Studio Code - Open Source ("Code - OSS")
|
||||
[![Build Status](https://dev.azure.com/vscode/VSCode/_apis/build/status/VS%20Code?branchName=master)](https://aka.ms/vscode-builds)
|
||||
[![Feature Requests](https://img.shields.io/github/issues/microsoft/vscode/feature-request.svg)](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc)
|
||||
[![Bugs](https://img.shields.io/github/issues/microsoft/vscode/bug.svg)](https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Abug)
|
||||
[![Gitter](https://img.shields.io/badge/chat-on%20gitter-yellow.svg)](https://gitter.im/Microsoft/vscode)
|
||||
|
|
|
@ -28,23 +28,23 @@ This project incorporates components from the projects listed below. The origina
|
|||
21. Ionic documentation version 1.2.4 (https://github.com/ionic-team/ionic-site)
|
||||
22. ionide/ionide-fsgrammar (https://github.com/ionide/ionide-fsgrammar)
|
||||
23. jeff-hykin/cpp-textmate-grammar version 1.12.11 (https://github.com/jeff-hykin/cpp-textmate-grammar)
|
||||
24. jeff-hykin/cpp-textmate-grammar version 1.15.3 (https://github.com/jeff-hykin/cpp-textmate-grammar)
|
||||
24. jeff-hykin/cpp-textmate-grammar version 1.15.5 (https://github.com/jeff-hykin/cpp-textmate-grammar)
|
||||
25. js-beautify version 1.6.8 (https://github.com/beautify-web/js-beautify)
|
||||
26. Jxck/assert version 1.0.0 (https://github.com/Jxck/assert)
|
||||
27. language-docker (https://github.com/moby/moby)
|
||||
28. language-less version 0.34.2 (https://github.com/atom/language-less)
|
||||
29. language-php version 0.44.5 (https://github.com/atom/language-php)
|
||||
29. language-php version 0.46.0 (https://github.com/atom/language-php)
|
||||
30. MagicStack/MagicPython version 1.1.1 (https://github.com/MagicStack/MagicPython)
|
||||
31. marked version 1.1.0 (https://github.com/markedjs/marked)
|
||||
32. mdn-data version 1.1.12 (https://github.com/mdn/data)
|
||||
33. microsoft/TypeScript-TmLanguage version 0.0.1 (https://github.com/microsoft/TypeScript-TmLanguage)
|
||||
34. microsoft/vscode-JSON.tmLanguage (https://github.com/microsoft/vscode-JSON.tmLanguage)
|
||||
35. microsoft/vscode-markdown-tm-grammar (https://github.com/microsoft/vscode-markdown-tm-grammar)
|
||||
35. microsoft/vscode-markdown-tm-grammar version 1.0.0 (https://github.com/microsoft/vscode-markdown-tm-grammar)
|
||||
36. microsoft/vscode-mssql version 1.9.0 (https://github.com/microsoft/vscode-mssql)
|
||||
37. mmims/language-batchfile version 0.7.5 (https://github.com/mmims/language-batchfile)
|
||||
38. octref/language-css version 0.42.11 (https://github.com/octref/language-css)
|
||||
39. PowerShell/EditorSyntax version 1.0.0 (https://github.com/PowerShell/EditorSyntax)
|
||||
40. rust-syntax version 0.2.13 (https://github.com/dustypomerleau/rust-syntax)
|
||||
40. rust-syntax version 0.4.3 (https://github.com/dustypomerleau/rust-syntax)
|
||||
41. seti-ui version 0.1.0 (https://github.com/jesseweed/seti-ui)
|
||||
42. shaders-tmLanguage version 0.1.0 (https://github.com/tgjones/shaders-tmLanguage)
|
||||
43. textmate/asp.vb.net.tmbundle (https://github.com/textmate/asp.vb.net.tmbundle)
|
||||
|
@ -64,7 +64,7 @@ This project incorporates components from the projects listed below. The origina
|
|||
57. TypeScript-TmLanguage version 1.0.0 (https://github.com/microsoft/TypeScript-TmLanguage)
|
||||
58. Unicode version 12.0.0 (https://home.unicode.org/)
|
||||
59. vscode-codicons version 0.0.1 (https://github.com/microsoft/vscode-codicons)
|
||||
60. vscode-logfile-highlighter version 2.8.0 (https://github.com/emilast/vscode-logfile-highlighter)
|
||||
60. vscode-logfile-highlighter version 2.9.0 (https://github.com/emilast/vscode-logfile-highlighter)
|
||||
61. vscode-swift version 0.0.1 (https://github.com/owensd/vscode-swift)
|
||||
62. Web Background Synchronization (https://github.com/WICG/background-sync)
|
||||
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
jobs:
|
||||
- job: Windows
|
||||
pool:
|
||||
vmImage: VS2017-Win2016
|
||||
steps:
|
||||
- template: build/azure-pipelines/win32/continuous-build-win32.yml
|
||||
|
||||
- job: Linux
|
||||
pool:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
steps:
|
||||
- template: build/azure-pipelines/linux/continuous-build-linux.yml
|
||||
|
||||
- job: macOS
|
||||
pool:
|
||||
vmImage: macOS-latest
|
||||
steps:
|
||||
- template: build/azure-pipelines/darwin/continuous-build-darwin.yml
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
exclude:
|
||||
- electron-11.x.y
|
|
@ -1 +1 @@
|
|||
2020-11-30T16:21:34.566Z
|
||||
2021-01-28T11:52:11.376Z
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
azure-pipelines/**/*.js
|
||||
darwin/**/*.js
|
||||
lib/**/*.js
|
|
@ -1,2 +0,0 @@
|
|||
node_modules/
|
||||
*.js
|
|
@ -0,0 +1,25 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const crypto = require("crypto");
|
||||
const { dirs } = require('../../npm/dirs');
|
||||
const ROOT = path.join(__dirname, '../../../');
|
||||
const shasum = crypto.createHash('sha1');
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, 'build/.cachesalt')));
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, '.yarnrc')));
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, 'remote/.yarnrc')));
|
||||
// Add `yarn.lock` files
|
||||
for (let dir of dirs) {
|
||||
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
|
||||
shasum.update(fs.readFileSync(yarnLockPath));
|
||||
}
|
||||
// Add any other command line arguments
|
||||
for (let i = 2; i < process.argv.length; i++) {
|
||||
shasum.update(process.argv[i]);
|
||||
}
|
||||
process.stdout.write(shasum.digest('hex'));
|
|
@ -0,0 +1,32 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import * as crypto from 'crypto';
|
||||
const { dirs } = require('../../npm/dirs');
|
||||
|
||||
const ROOT = path.join(__dirname, '../../../');
|
||||
|
||||
const shasum = crypto.createHash('sha1');
|
||||
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, 'build/.cachesalt')));
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, '.yarnrc')));
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, 'remote/.yarnrc')));
|
||||
|
||||
// Add `yarn.lock` files
|
||||
for (let dir of dirs) {
|
||||
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
|
||||
shasum.update(fs.readFileSync(yarnLockPath));
|
||||
}
|
||||
|
||||
// Add any other command line arguments
|
||||
for (let i = 2; i < process.argv.length; i++) {
|
||||
shasum.update(process.argv[i]);
|
||||
}
|
||||
|
||||
process.stdout.write(shasum.digest('hex'));
|
|
@ -0,0 +1,94 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const fs = require("fs");
|
||||
const crypto = require("crypto");
|
||||
const azure = require("azure-storage");
|
||||
const mime = require("mime");
|
||||
const cosmos_1 = require("@azure/cosmos");
|
||||
const retry_1 = require("./retry");
|
||||
if (process.argv.length !== 6) {
|
||||
console.error('Usage: node createAsset.js PLATFORM TYPE NAME FILE');
|
||||
process.exit(-1);
|
||||
}
|
||||
function hashStream(hashName, stream) {
|
||||
return new Promise((c, e) => {
|
||||
const shasum = crypto.createHash(hashName);
|
||||
stream
|
||||
.on('data', shasum.update.bind(shasum))
|
||||
.on('error', e)
|
||||
.on('close', () => c(shasum.digest('hex')));
|
||||
});
|
||||
}
|
||||
async function doesAssetExist(blobService, quality, blobName) {
|
||||
const existsResult = await new Promise((c, e) => blobService.doesBlobExist(quality, blobName, (err, r) => err ? e(err) : c(r)));
|
||||
return existsResult.exists;
|
||||
}
|
||||
async function uploadBlob(blobService, quality, blobName, filePath, fileName) {
|
||||
const blobOptions = {
|
||||
contentSettings: {
|
||||
contentType: mime.lookup(filePath),
|
||||
contentDisposition: `attachment; filename="${fileName}"`,
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
};
|
||||
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(quality, blobName, filePath, blobOptions, err => err ? e(err) : c()));
|
||||
}
|
||||
function getEnv(name) {
|
||||
const result = process.env[name];
|
||||
if (typeof result === 'undefined') {
|
||||
throw new Error('Missing env: ' + name);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
async function main() {
|
||||
const [, , platform, type, fileName, filePath] = process.argv;
|
||||
const quality = getEnv('VSCODE_QUALITY');
|
||||
const commit = getEnv('BUILD_SOURCEVERSION');
|
||||
console.log('Creating asset...');
|
||||
const stat = await new Promise((c, e) => fs.stat(filePath, (err, stat) => err ? e(err) : c(stat)));
|
||||
const size = stat.size;
|
||||
console.log('Size:', size);
|
||||
const stream = fs.createReadStream(filePath);
|
||||
const [sha1hash, sha256hash] = await Promise.all([hashStream('sha1', stream), hashStream('sha256', stream)]);
|
||||
console.log('SHA1:', sha1hash);
|
||||
console.log('SHA256:', sha256hash);
|
||||
const blobName = commit + '/' + fileName;
|
||||
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2'];
|
||||
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2'])
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
const blobExists = await doesAssetExist(blobService, quality, blobName);
|
||||
if (blobExists) {
|
||||
console.log(`Blob ${quality}, ${blobName} already exists, not publishing again.`);
|
||||
return;
|
||||
}
|
||||
console.log('Uploading blobs to Azure storage...');
|
||||
await uploadBlob(blobService, quality, blobName, filePath, fileName);
|
||||
console.log('Blobs successfully uploaded.');
|
||||
const asset = {
|
||||
platform,
|
||||
type,
|
||||
url: `${process.env['AZURE_CDN_URL']}/${quality}/${blobName}`,
|
||||
hash: sha1hash,
|
||||
sha256hash,
|
||||
size
|
||||
};
|
||||
// Remove this if we ever need to rollback fast updates for windows
|
||||
if (/win32/.test(platform)) {
|
||||
asset.supportsFastUpdate = true;
|
||||
}
|
||||
console.log('Asset:', JSON.stringify(asset, null, ' '));
|
||||
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const scripts = client.database('builds').container(quality).scripts;
|
||||
await retry_1.retry(() => scripts.storedProcedure('createAsset').execute('', [commit, asset, true]));
|
||||
}
|
||||
main().then(() => {
|
||||
console.log('Asset successfully created');
|
||||
process.exit(0);
|
||||
}, err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
|
@ -0,0 +1,51 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const cosmos_1 = require("@azure/cosmos");
|
||||
const retry_1 = require("./retry");
|
||||
if (process.argv.length !== 3) {
|
||||
console.error('Usage: node createBuild.js VERSION');
|
||||
process.exit(-1);
|
||||
}
|
||||
function getEnv(name) {
|
||||
const result = process.env[name];
|
||||
if (typeof result === 'undefined') {
|
||||
throw new Error('Missing env: ' + name);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
async function main() {
|
||||
const [, , _version] = process.argv;
|
||||
const quality = getEnv('VSCODE_QUALITY');
|
||||
const commit = getEnv('BUILD_SOURCEVERSION');
|
||||
const queuedBy = getEnv('BUILD_QUEUEDBY');
|
||||
const sourceBranch = getEnv('BUILD_SOURCEBRANCH');
|
||||
const version = _version + (quality === 'stable' ? '' : `-${quality}`);
|
||||
console.log('Creating build...');
|
||||
console.log('Quality:', quality);
|
||||
console.log('Version:', version);
|
||||
console.log('Commit:', commit);
|
||||
const build = {
|
||||
id: commit,
|
||||
timestamp: (new Date()).getTime(),
|
||||
version,
|
||||
isReleased: false,
|
||||
sourceBranch,
|
||||
queuedBy,
|
||||
assets: [],
|
||||
updates: {}
|
||||
};
|
||||
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const scripts = client.database('builds').container(quality).scripts;
|
||||
await retry_1.retry(() => scripts.storedProcedure('createBuild').execute('', [Object.assign(Object.assign({}, build), { _partitionKey: '' })]));
|
||||
}
|
||||
main().then(() => {
|
||||
console.log('Build successfully created');
|
||||
process.exit(0);
|
||||
}, err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
|
@ -10,8 +10,8 @@ git clone --depth 1 https://github.com/microsoft/vscode-node-debug2.git
|
|||
git clone --depth 1 https://github.com/microsoft/vscode-node-debug.git
|
||||
git clone --depth 1 https://github.com/microsoft/vscode-html-languageservice.git
|
||||
git clone --depth 1 https://github.com/microsoft/vscode-json-languageservice.git
|
||||
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --sourceDir $BUILD_SOURCESDIRECTORY --excludedDir $BUILD_SOURCESDIRECTORY/extensions --outputDir . --applyEndpoints
|
||||
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --config $BUILD_SOURCESDIRECTORY/build/azure-pipelines/common/telemetry-config.json -o .
|
||||
node $BUILD_SOURCESDIRECTORY/node_modules/.bin/vscode-telemetry-extractor --sourceDir $BUILD_SOURCESDIRECTORY --excludedDir $BUILD_SOURCESDIRECTORY/extensions --outputDir . --applyEndpoints
|
||||
node $BUILD_SOURCESDIRECTORY/node_modules/.bin/vscode-telemetry-extractor --config $BUILD_SOURCESDIRECTORY/build/azure-pipelines/common/telemetry-config.json -o .
|
||||
mkdir -p $BUILD_SOURCESDIRECTORY/.build/telemetry
|
||||
mv declarations-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-core.json
|
||||
mv config-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-extensions.json
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const path = require("path");
|
||||
const retry_1 = require("./retry");
|
||||
const { installBrowsersWithProgressBar } = require('playwright/lib/install/installer');
|
||||
const playwrightPath = path.dirname(require.resolve('playwright'));
|
||||
async function install() {
|
||||
await retry_1.retry(() => installBrowsersWithProgressBar(playwrightPath));
|
||||
}
|
||||
install();
|
|
@ -0,0 +1,15 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as path from 'path';
|
||||
import { retry } from './retry';
|
||||
const { installBrowsersWithProgressBar } = require('playwright/lib/install/installer');
|
||||
const playwrightPath = path.dirname(require.resolve('playwright'));
|
||||
|
||||
async function install() {
|
||||
await retry(() => installBrowsersWithProgressBar(playwrightPath));
|
||||
}
|
||||
|
||||
install();
|
|
@ -0,0 +1,40 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
if (process.argv.length !== 3) {
|
||||
console.error('Usage: node listNodeModules.js OUTPUT_FILE');
|
||||
process.exit(-1);
|
||||
}
|
||||
const ROOT = path.join(__dirname, '../../../');
|
||||
function findNodeModulesFiles(location, inNodeModules, result) {
|
||||
const entries = fs.readdirSync(path.join(ROOT, location));
|
||||
for (const entry of entries) {
|
||||
const entryPath = `${location}/${entry}`;
|
||||
if (/(^\/out)|(^\/src$)|(^\/.git$)|(^\/.build$)/.test(entryPath)) {
|
||||
continue;
|
||||
}
|
||||
let stat;
|
||||
try {
|
||||
stat = fs.statSync(path.join(ROOT, entryPath));
|
||||
}
|
||||
catch (err) {
|
||||
continue;
|
||||
}
|
||||
if (stat.isDirectory()) {
|
||||
findNodeModulesFiles(entryPath, inNodeModules || (entry === 'node_modules'), result);
|
||||
}
|
||||
else {
|
||||
if (inNodeModules) {
|
||||
result.push(entryPath.substr(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const result = [];
|
||||
findNodeModulesFiles('', false, result);
|
||||
fs.writeFileSync(process.argv[2], result.join('\n') + '\n');
|
|
@ -0,0 +1,46 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
if (process.argv.length !== 3) {
|
||||
console.error('Usage: node listNodeModules.js OUTPUT_FILE');
|
||||
process.exit(-1);
|
||||
}
|
||||
|
||||
const ROOT = path.join(__dirname, '../../../');
|
||||
|
||||
function findNodeModulesFiles(location: string, inNodeModules: boolean, result: string[]) {
|
||||
const entries = fs.readdirSync(path.join(ROOT, location));
|
||||
for (const entry of entries) {
|
||||
const entryPath = `${location}/${entry}`;
|
||||
|
||||
if (/(^\/out)|(^\/src$)|(^\/.git$)|(^\/.build$)/.test(entryPath)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
let stat: fs.Stats;
|
||||
try {
|
||||
stat = fs.statSync(path.join(ROOT, entryPath));
|
||||
} catch (err) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (stat.isDirectory()) {
|
||||
findNodeModulesFiles(entryPath, inNodeModules || (entry === 'node_modules'), result);
|
||||
} else {
|
||||
if (inNodeModules) {
|
||||
result.push(entryPath.substr(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const result: string[] = [];
|
||||
findNodeModulesFiles('', false, result);
|
||||
fs.writeFileSync(process.argv[2], result.join('\n') + '\n');
|
|
@ -0,0 +1,71 @@
|
|||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const azure = require("azure-storage");
|
||||
const mime = require("mime");
|
||||
const minimist = require("minimist");
|
||||
const path_1 = require("path");
|
||||
const fileNames = [
|
||||
'fake.html',
|
||||
'host.js',
|
||||
'index.html',
|
||||
'main.js',
|
||||
'service-worker.js'
|
||||
];
|
||||
async function assertContainer(blobService, container) {
|
||||
await new Promise((c, e) => blobService.createContainerIfNotExists(container, { publicAccessLevel: 'blob' }, err => err ? e(err) : c()));
|
||||
}
|
||||
async function doesBlobExist(blobService, container, blobName) {
|
||||
const existsResult = await new Promise((c, e) => blobService.doesBlobExist(container, blobName, (err, r) => err ? e(err) : c(r)));
|
||||
return existsResult.exists;
|
||||
}
|
||||
async function uploadBlob(blobService, container, blobName, file) {
|
||||
const blobOptions = {
|
||||
contentSettings: {
|
||||
contentType: mime.lookup(file),
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
};
|
||||
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(container, blobName, file, blobOptions, err => err ? e(err) : c()));
|
||||
}
|
||||
async function publish(commit, files) {
|
||||
console.log('Publishing...');
|
||||
console.log('Commit:', commit);
|
||||
const storageAccount = process.env['AZURE_WEBVIEW_STORAGE_ACCOUNT'];
|
||||
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_WEBVIEW_STORAGE_ACCESS_KEY'])
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
await assertContainer(blobService, commit);
|
||||
for (const file of files) {
|
||||
const blobName = path_1.basename(file);
|
||||
const blobExists = await doesBlobExist(blobService, commit, blobName);
|
||||
if (blobExists) {
|
||||
console.log(`Blob ${commit}, ${blobName} already exists, not publishing again.`);
|
||||
continue;
|
||||
}
|
||||
console.log('Uploading blob to Azure storage...');
|
||||
await uploadBlob(blobService, commit, blobName, file);
|
||||
}
|
||||
console.log('Blobs successfully uploaded.');
|
||||
}
|
||||
function main() {
|
||||
const commit = process.env['BUILD_SOURCEVERSION'];
|
||||
if (!commit) {
|
||||
console.warn('Skipping publish due to missing BUILD_SOURCEVERSION');
|
||||
return;
|
||||
}
|
||||
const opts = minimist(process.argv.slice(2));
|
||||
const [directory] = opts._;
|
||||
const files = fileNames.map(fileName => path_1.join(directory, fileName));
|
||||
publish(commit, files).catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
if (process.argv.length < 3) {
|
||||
console.error('Usage: node publish.js <directory>');
|
||||
process.exit(-1);
|
||||
}
|
||||
main();
|
|
@ -0,0 +1,50 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const cosmos_1 = require("@azure/cosmos");
|
||||
const retry_1 = require("./retry");
|
||||
function getEnv(name) {
|
||||
const result = process.env[name];
|
||||
if (typeof result === 'undefined') {
|
||||
throw new Error('Missing env: ' + name);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function createDefaultConfig(quality) {
|
||||
return {
|
||||
id: quality,
|
||||
frozen: false
|
||||
};
|
||||
}
|
||||
async function getConfig(client, quality) {
|
||||
const query = `SELECT TOP 1 * FROM c WHERE c.id = "${quality}"`;
|
||||
const res = await client.database('builds').container('config').items.query(query).fetchAll();
|
||||
if (res.resources.length === 0) {
|
||||
return createDefaultConfig(quality);
|
||||
}
|
||||
return res.resources[0];
|
||||
}
|
||||
async function main() {
|
||||
const commit = getEnv('BUILD_SOURCEVERSION');
|
||||
const quality = getEnv('VSCODE_QUALITY');
|
||||
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const config = await getConfig(client, quality);
|
||||
console.log('Quality config:', config);
|
||||
if (config.frozen) {
|
||||
console.log(`Skipping release because quality ${quality} is frozen.`);
|
||||
return;
|
||||
}
|
||||
console.log(`Releasing build ${commit}...`);
|
||||
const scripts = client.database('builds').container(quality).scripts;
|
||||
await retry_1.retry(() => scripts.storedProcedure('releaseBuild').execute('', [commit]));
|
||||
}
|
||||
main().then(() => {
|
||||
console.log('Build successfully released');
|
||||
process.exit(0);
|
||||
}, err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
|
@ -0,0 +1,25 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.retry = void 0;
|
||||
async function retry(fn) {
|
||||
for (let run = 1; run <= 10; run++) {
|
||||
try {
|
||||
return await fn();
|
||||
}
|
||||
catch (err) {
|
||||
if (!/ECONNRESET/.test(err.message)) {
|
||||
throw err;
|
||||
}
|
||||
const millis = (Math.random() * 200) + (50 * Math.pow(1.5, run));
|
||||
console.log(`Failed with ECONNRESET, retrying in ${millis}ms...`);
|
||||
// maximum delay is 10th retry: ~3 seconds
|
||||
await new Promise(c => setTimeout(c, millis));
|
||||
}
|
||||
}
|
||||
throw new Error('Retried too many times');
|
||||
}
|
||||
exports.retry = retry;
|
|
@ -0,0 +1,87 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const url = require("url");
|
||||
const azure = require("azure-storage");
|
||||
const mime = require("mime");
|
||||
const cosmos_1 = require("@azure/cosmos");
|
||||
const retry_1 = require("./retry");
|
||||
function log(...args) {
|
||||
console.log(...[`[${new Date().toISOString()}]`, ...args]);
|
||||
}
|
||||
function error(...args) {
|
||||
console.error(...[`[${new Date().toISOString()}]`, ...args]);
|
||||
}
|
||||
if (process.argv.length < 3) {
|
||||
error('Usage: node sync-mooncake.js <quality>');
|
||||
process.exit(-1);
|
||||
}
|
||||
async function sync(commit, quality) {
|
||||
log(`Synchronizing Mooncake assets for ${quality}, ${commit}...`);
|
||||
const client = new cosmos_1.CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT'], key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const container = client.database('builds').container(quality);
|
||||
const query = `SELECT TOP 1 * FROM c WHERE c.id = "${commit}"`;
|
||||
const res = await container.items.query(query, {}).fetchAll();
|
||||
if (res.resources.length !== 1) {
|
||||
throw new Error(`No builds found for ${commit}`);
|
||||
}
|
||||
const build = res.resources[0];
|
||||
log(`Found build for ${commit}, with ${build.assets.length} assets`);
|
||||
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2'];
|
||||
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2'])
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
const mooncakeBlobService = azure.createBlobService(storageAccount, process.env['MOONCAKE_STORAGE_ACCESS_KEY'], `${storageAccount}.blob.core.chinacloudapi.cn`)
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
// mooncake is fussy and far away, this is needed!
|
||||
blobService.defaultClientRequestTimeoutInMs = 10 * 60 * 1000;
|
||||
mooncakeBlobService.defaultClientRequestTimeoutInMs = 10 * 60 * 1000;
|
||||
for (const asset of build.assets) {
|
||||
try {
|
||||
const blobPath = url.parse(asset.url).path;
|
||||
if (!blobPath) {
|
||||
throw new Error(`Failed to parse URL: ${asset.url}`);
|
||||
}
|
||||
const blobName = blobPath.replace(/^\/\w+\//, '');
|
||||
log(`Found ${blobName}`);
|
||||
if (asset.mooncakeUrl) {
|
||||
log(` Already in Mooncake ✔️`);
|
||||
continue;
|
||||
}
|
||||
const readStream = blobService.createReadStream(quality, blobName, undefined);
|
||||
const blobOptions = {
|
||||
contentSettings: {
|
||||
contentType: mime.lookup(blobPath),
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
};
|
||||
const writeStream = mooncakeBlobService.createWriteStreamToBlockBlob(quality, blobName, blobOptions, undefined);
|
||||
log(` Uploading to Mooncake...`);
|
||||
await new Promise((c, e) => readStream.pipe(writeStream).on('finish', c).on('error', e));
|
||||
log(` Updating build in DB...`);
|
||||
const mooncakeUrl = `${process.env['MOONCAKE_CDN_URL']}${blobPath}`;
|
||||
await retry_1.retry(() => container.scripts.storedProcedure('setAssetMooncakeUrl')
|
||||
.execute('', [commit, asset.platform, asset.type, mooncakeUrl]));
|
||||
log(` Done ✔️`);
|
||||
}
|
||||
catch (err) {
|
||||
error(err);
|
||||
}
|
||||
}
|
||||
log(`All done ✔️`);
|
||||
}
|
||||
function main() {
|
||||
const commit = process.env['BUILD_SOURCEVERSION'];
|
||||
if (!commit) {
|
||||
error('Skipping publish due to missing BUILD_SOURCEVERSION');
|
||||
return;
|
||||
}
|
||||
const quality = process.argv[2];
|
||||
sync(commit, quality).catch(err => {
|
||||
error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
main();
|
|
@ -1,79 +0,0 @@
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
versionSpec: "1.x"
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "vscode-build-cache"
|
||||
|
||||
- script: |
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
|
||||
displayName: Install Dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "vscode-build-cache"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn postinstall
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
|
||||
- script: |
|
||||
yarn electron x64
|
||||
displayName: Download Electron
|
||||
|
||||
- script: |
|
||||
yarn monaco-compile-check
|
||||
displayName: Run Monaco Editor Checks
|
||||
|
||||
- script: |
|
||||
yarn valid-layers-check
|
||||
displayName: Run Valid Layers Checks
|
||||
|
||||
- script: |
|
||||
yarn compile
|
||||
displayName: Compile Sources
|
||||
|
||||
- script: |
|
||||
yarn download-builtin-extensions
|
||||
displayName: Download Built-in Extensions
|
||||
|
||||
- script: |
|
||||
./scripts/test.sh --tfs "Unit Tests"
|
||||
displayName: Run Unit Tests (Electron)
|
||||
|
||||
- script: |
|
||||
yarn test-browser --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
|
||||
displayName: Run Unit Tests (Browser)
|
||||
|
||||
- script: |
|
||||
./scripts/test-integration.sh --tfs "Integration Tests"
|
||||
displayName: Run Integration Tests (Electron)
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: crash-dump-macos
|
||||
targetPath: .build/crashes
|
||||
displayName: "Publish Crash Reports"
|
||||
continueOnError: true
|
||||
condition: failed()
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Tests Results
|
||||
inputs:
|
||||
testResultsFiles: "*-results.xml"
|
||||
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
|
||||
condition: succeededOrFailed()
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1,32 +1,7 @@
|
|||
steps:
|
||||
- script: |
|
||||
mkdir -p .build
|
||||
echo -n $BUILD_SOURCEVERSION > .build/commit
|
||||
echo -n $VSCODE_QUALITY > .build/quality
|
||||
echo -n $ENABLE_TERRAPIN > .build/terrapin
|
||||
displayName: Prepare compilation cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
|
||||
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
|
||||
vstsFeed: "npm-vscode"
|
||||
platformIndependent: true
|
||||
alias: "Compilation"
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
exit 1
|
||||
displayName: Check RestoreCache
|
||||
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
versionSpec: "1.x"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: AzureKeyVault@1
|
||||
displayName: "Azure Key Vault: Get Secrets"
|
||||
|
@ -34,9 +9,21 @@ steps:
|
|||
azureSubscription: "vscode-builds-subscription"
|
||||
KeyVaultName: vscode
|
||||
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: Compilation
|
||||
path: $(Build.ArtifactStagingDirectory)
|
||||
displayName: Download compilation output
|
||||
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
|
||||
displayName: Extract compilation output
|
||||
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
cat << EOF > ~/.netrc
|
||||
machine github.com
|
||||
login vscode
|
||||
|
@ -55,40 +42,45 @@ steps:
|
|||
|
||||
- script: |
|
||||
set -e
|
||||
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
|
||||
git fetch distro
|
||||
git merge $(node -p "require('./package.json').distro")
|
||||
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
|
||||
displayName: Merge distro
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
displayName: Switch to Terrapin packages
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
|
||||
- script: |
|
||||
echo -n $(VSCODE_ARCH) > .build/arch
|
||||
mkdir -p .build
|
||||
node build/azure-pipelines/common/computeNodeModulesCacheKey.js $VSCODE_ARCH $ENABLE_TERRAPIN > .build/yarnlockhash
|
||||
displayName: Prepare yarn cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
|
||||
path: .build/node_modules_cache
|
||||
cacheHitVar: NODE_MODULES_RESTORED
|
||||
displayName: Restore node_modules cache
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
npm install -g node-gyp@7.1.0
|
||||
tar -xzf .build/node_modules_cache/cache.tgz
|
||||
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Extract node_modules cache
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
npm install -g node-gyp@latest
|
||||
node-gyp --version
|
||||
displayName: Update node-gyp
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
displayName: Switch to Terrapin packages
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
export npm_config_arch=$(VSCODE_ARCH)
|
||||
export npm_config_node_gyp=$(which node-gyp)
|
||||
export SDKROOT=/Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
|
||||
export CHILD_CONCURRENCY="1"
|
||||
|
||||
for i in {1..3}; do # try 3 times, for Terrapin
|
||||
yarn --frozen-lockfile && break
|
||||
|
@ -98,25 +90,19 @@ steps:
|
|||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
env:
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
displayName: Install dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
export npm_config_arch=$(VSCODE_ARCH)
|
||||
export npm_config_node_gyp=$(which node-gyp)
|
||||
export SDKROOT=/Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
|
||||
ls /Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
|
||||
yarn postinstall
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
|
||||
mkdir -p .build/node_modules_cache
|
||||
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Create node_modules archive
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -126,10 +112,21 @@ steps:
|
|||
export SDKROOT=/Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
|
||||
ls /Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
|
||||
yarn electron-rebuild
|
||||
# remove once https://github.com/prebuild/prebuild-install/pull/140 is merged and found in keytar
|
||||
cd ./node_modules/keytar
|
||||
node-gyp rebuild
|
||||
displayName: Rebuild native modules for ARM64
|
||||
condition: eq(variables['VSCODE_ARCH'], 'arm64')
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- download: current
|
||||
artifact: vscode-darwin-x64
|
||||
displayName: Download x64 artifact
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'universal'))
|
||||
|
||||
- download: current
|
||||
artifact: vscode-darwin-arm64
|
||||
displayName: Download arm64 artifact
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'universal'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -141,6 +138,7 @@ steps:
|
|||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn gulp vscode-darwin-$(VSCODE_ARCH)-min-ci
|
||||
displayName: Build
|
||||
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -148,14 +146,23 @@ steps:
|
|||
yarn gulp vscode-reh-darwin-min-ci
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn gulp vscode-reh-web-darwin-min-ci
|
||||
displayName: Build reh
|
||||
displayName: Build Server
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn electron $(VSCODE_ARCH)
|
||||
displayName: Download Electron
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
unzip $(Pipeline.Workspace)/vscode-darwin-x64/VSCode-darwin-x64.zip -d $(agent.builddirectory)/vscode-x64
|
||||
unzip $(Pipeline.Workspace)/vscode-darwin-arm64/VSCode-darwin-arm64.zip -d $(agent.builddirectory)/vscode-arm64
|
||||
DEBUG=* node build/darwin/create-universal-app.js
|
||||
displayName: Create Universal App
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'universal'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
|
||||
displayName: Download Electron and Playwright
|
||||
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'universal'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -167,17 +174,26 @@ steps:
|
|||
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd $(agent.tempdirectory)/buildagent.keychain
|
||||
VSCODE_ARCH="$(VSCODE_ARCH)" DEBUG=electron-osx-sign* node build/darwin/sign.js
|
||||
displayName: Set Hardened Entitlements
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
./scripts/test.sh --build --tfs "Unit Tests"
|
||||
displayName: Run unit tests (Electron)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn test-browser --build --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
|
||||
displayName: Run unit tests (Browser)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn --cwd test/integration/browser compile
|
||||
displayName: Compile integration tests
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
|
@ -191,13 +207,15 @@ steps:
|
|||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin" \
|
||||
./scripts/test-integration.sh --build --tfs "Integration Tests"
|
||||
displayName: Run integration tests (Electron)
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
|
||||
./resources/server/test/test-web-integration.sh --browser webkit
|
||||
displayName: Run integration tests (Browser)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
|
@ -208,22 +226,29 @@ steps:
|
|||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin" \
|
||||
./resources/server/test/test-remote-integration.sh
|
||||
displayName: Run remote integration tests (Electron)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn --cwd test/smoke compile
|
||||
displayName: Compile smoke tests
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
||||
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
||||
yarn smoketest --build "$APP_ROOT/$APP_NAME"
|
||||
continueOnError: true
|
||||
yarn smoketest-no-compile --build "$APP_ROOT/$APP_NAME"
|
||||
timeoutInMinutes: 5
|
||||
displayName: Run smoke tests (Electron)
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
|
||||
yarn smoketest --web --headless
|
||||
continueOnError: true
|
||||
yarn smoketest-no-compile --web --headless
|
||||
timeoutInMinutes: 5
|
||||
displayName: Run smoke tests (Browser)
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
|
@ -240,12 +265,13 @@ steps:
|
|||
inputs:
|
||||
testResultsFiles: "*-results.xml"
|
||||
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
|
||||
condition: succeededOrFailed()
|
||||
condition: and(succeededOrFailed(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
pushd $(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH) && zip -r -X -y $(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH).zip * && popd
|
||||
displayName: Archive build
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
inputs:
|
||||
|
@ -270,10 +296,12 @@ steps:
|
|||
]
|
||||
SessionTimeout: 60
|
||||
displayName: Codesign
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
zip -d $(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH).zip "*.pkg"
|
||||
displayName: Clean Archive
|
||||
displayName: Clean
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
||||
|
@ -281,6 +309,7 @@ steps:
|
|||
BUNDLE_IDENTIFIER=$(node -p "require(\"$APP_ROOT/$APP_NAME/Contents/Resources/app/product.json\").darwinBundleIdentifier")
|
||||
echo "##vso[task.setvariable variable=BundleIdentifier]$BUNDLE_IDENTIFIER"
|
||||
displayName: Export bundle identifier
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
inputs:
|
||||
|
@ -305,6 +334,7 @@ steps:
|
|||
]
|
||||
SessionTimeout: 60
|
||||
displayName: Notarization
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -312,7 +342,7 @@ steps:
|
|||
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
||||
"$APP_ROOT/$APP_NAME/Contents/Resources/app/bin/code" --export-default-configuration=.build
|
||||
displayName: Verify start after signing (export configuration)
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
|
||||
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64'), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -323,13 +353,29 @@ steps:
|
|||
VSCODE_ARCH="$(VSCODE_ARCH)" \
|
||||
./build/azure-pipelines/darwin/publish.sh
|
||||
displayName: Publish
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/VSCode-darwin-$(VSCODE_ARCH).zip
|
||||
artifact: vscode-darwin-$(VSCODE_ARCH)
|
||||
displayName: Publish archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/vscode-server-darwin.zip
|
||||
artifact: vscode-server-darwin-$(VSCODE_ARCH)
|
||||
displayName: Publish server archive
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/vscode-server-darwin-web.zip
|
||||
artifact: vscode-server-darwin-$(VSCODE_ARCH)-web
|
||||
displayName: Publish web server archive
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \
|
||||
VSCODE_ARCH="$(VSCODE_ARCH)" \
|
||||
yarn gulp upload-vscode-configuration
|
||||
displayName: Upload configuration (for Bing settings search)
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
continueOnError: true
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
|
|
|
@ -5,6 +5,7 @@ set -e
|
|||
case $VSCODE_ARCH in
|
||||
x64) ASSET_ID="darwin" ;;
|
||||
arm64) ASSET_ID="darwin-arm64" ;;
|
||||
universal) ASSET_ID="darwin-universal" ;;
|
||||
esac
|
||||
|
||||
# publish the build
|
||||
|
|
|
@ -8,7 +8,7 @@ pr:
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: AzureKeyVault@1
|
||||
displayName: "Azure Key Vault: Get Secrets"
|
||||
|
|
|
@ -2,11 +2,12 @@ pool:
|
|||
vmImage: "Ubuntu-16.04"
|
||||
|
||||
trigger: none
|
||||
pr: none
|
||||
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: AzureKeyVault@1
|
||||
displayName: "Azure Key Vault: Get Secrets"
|
||||
|
|
|
@ -22,7 +22,7 @@ SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web"
|
|||
SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz"
|
||||
SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME"
|
||||
|
||||
rm -rf $ROOT/vscode-server-*.tar.*
|
||||
rm -rf $ROOT/vscode-server-*-web.tar.*
|
||||
(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME)
|
||||
|
||||
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
|
||||
|
|
|
@ -1,92 +0,0 @@
|
|||
steps:
|
||||
- script: |
|
||||
set -e
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0
|
||||
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
sudo chmod +x /etc/init.d/xvfb
|
||||
sudo update-rc.d xvfb defaults
|
||||
sudo service xvfb start
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
versionSpec: "1.x"
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "vscode-build-cache"
|
||||
|
||||
- script: |
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
|
||||
displayName: Install Dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "vscode-build-cache"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn postinstall
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
|
||||
- script: |
|
||||
yarn electron x64
|
||||
displayName: Download Electron
|
||||
|
||||
- script: |
|
||||
yarn gulp hygiene
|
||||
displayName: Run Hygiene Checks
|
||||
|
||||
- script: |
|
||||
yarn monaco-compile-check
|
||||
displayName: Run Monaco Editor Checks
|
||||
|
||||
- script: |
|
||||
yarn valid-layers-check
|
||||
displayName: Run Valid Layers Checks
|
||||
|
||||
- script: |
|
||||
yarn compile
|
||||
displayName: Compile Sources
|
||||
|
||||
- script: |
|
||||
yarn download-builtin-extensions
|
||||
displayName: Download Built-in Extensions
|
||||
|
||||
- script: |
|
||||
DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
|
||||
displayName: Run Unit Tests (Electron)
|
||||
|
||||
- script: |
|
||||
DISPLAY=:10 yarn test-browser --browser chromium --tfs "Browser Unit Tests"
|
||||
displayName: Run Unit Tests (Browser)
|
||||
|
||||
- script: |
|
||||
DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests"
|
||||
displayName: Run Integration Tests (Electron)
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: crash-dump-linux
|
||||
targetPath: .build/crashes
|
||||
displayName: "Publish Crash Reports"
|
||||
continueOnError: true
|
||||
condition: failed()
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Tests Results
|
||||
inputs:
|
||||
testResultsFiles: "*-results.xml"
|
||||
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
|
||||
condition: succeededOrFailed()
|
|
@ -1,28 +1,7 @@
|
|||
steps:
|
||||
- script: |
|
||||
mkdir -p .build
|
||||
echo -n $BUILD_SOURCEVERSION > .build/commit
|
||||
echo -n $VSCODE_QUALITY > .build/quality
|
||||
echo -n $ENABLE_TERRAPIN > .build/terrapin
|
||||
displayName: Prepare compilation cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
|
||||
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
|
||||
vstsFeed: "npm-vscode"
|
||||
platformIndependent: true
|
||||
alias: "Compilation"
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
exit 1
|
||||
displayName: Check RestoreCache
|
||||
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
|
@ -34,6 +13,17 @@ steps:
|
|||
azureSubscription: "vscode-builds-subscription"
|
||||
KeyVaultName: vscode
|
||||
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: Compilation
|
||||
path: $(Build.ArtifactStagingDirectory)
|
||||
displayName: Download compilation output
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
|
||||
displayName: Extract compilation output
|
||||
|
||||
- task: Docker@1
|
||||
displayName: "Pull image"
|
||||
inputs:
|
||||
|
@ -45,7 +35,6 @@ steps:
|
|||
|
||||
- script: |
|
||||
set -e
|
||||
|
||||
cat << EOF > ~/.netrc
|
||||
machine github.com
|
||||
login vscode
|
||||
|
@ -58,30 +47,35 @@ steps:
|
|||
|
||||
- script: |
|
||||
set -e
|
||||
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
|
||||
git fetch distro
|
||||
git merge $(node -p "require('./package.json').distro")
|
||||
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
|
||||
displayName: Merge distro
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
displayName: Switch to Terrapin packages
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
|
||||
- script: |
|
||||
echo -n "alpine" > .build/arch
|
||||
mkdir -p .build
|
||||
node build/azure-pipelines/common/computeNodeModulesCacheKey.js "alpine" $ENABLE_TERRAPIN > .build/yarnlockhash
|
||||
displayName: Prepare yarn cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
|
||||
path: .build/node_modules_cache
|
||||
cacheHitVar: NODE_MODULES_RESTORED
|
||||
displayName: Restore node_modules cache
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf .build/node_modules_cache/cache.tgz
|
||||
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Extract node_modules cache
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
displayName: Switch to Terrapin packages
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
export CHILD_CONCURRENCY="1"
|
||||
for i in {1..3}; do # try 3 times, for Terrapin
|
||||
yarn --frozen-lockfile && break
|
||||
if [ $i -eq 3 ]; then
|
||||
|
@ -90,21 +84,19 @@ steps:
|
|||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
env:
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
displayName: Install dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn postinstall
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
|
||||
mkdir -p .build/node_modules_cache
|
||||
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Create node_modules archive
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -113,7 +105,7 @@ steps:
|
|||
|
||||
- script: |
|
||||
set -e
|
||||
docker run -e VSCODE_QUALITY -e CHILD_CONCURRENCY=1 -v $(pwd):/root/vscode -v ~/.netrc:/root/.netrc vscodehub.azurecr.io/vscode-linux-build-agent:alpine /root/vscode/build/azure-pipelines/linux/alpine/install-dependencies.sh
|
||||
docker run -e VSCODE_QUALITY -v $(pwd):/root/vscode -v ~/.netrc:/root/.netrc vscodehub.azurecr.io/vscode-linux-build-agent:alpine /root/vscode/build/azure-pipelines/linux/alpine/install-dependencies.sh
|
||||
displayName: Prebuild
|
||||
|
||||
- script: |
|
||||
|
@ -129,6 +121,17 @@ steps:
|
|||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
./build/azure-pipelines/linux/alpine/publish.sh
|
||||
displayName: Publish
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/vscode-server-linux-alpine.tar.gz
|
||||
artifact: vscode-server-linux-alpine
|
||||
displayName: Publish server archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/vscode-server-linux-alpine-web.tar.gz
|
||||
artifact: vscode-server-linux-alpine-web
|
||||
displayName: Publish web server archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: "Component Detection"
|
||||
|
|
|
@ -1,28 +1,7 @@
|
|||
steps:
|
||||
- script: |
|
||||
mkdir -p .build
|
||||
echo -n $BUILD_SOURCEVERSION > .build/commit
|
||||
echo -n $VSCODE_QUALITY > .build/quality
|
||||
echo -n $ENABLE_TERRAPIN > .build/terrapin
|
||||
displayName: Prepare compilation cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
|
||||
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
|
||||
vstsFeed: "npm-vscode"
|
||||
platformIndependent: true
|
||||
alias: "Compilation"
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
exit 1
|
||||
displayName: Check RestoreCache
|
||||
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
|
@ -34,6 +13,17 @@ steps:
|
|||
azureSubscription: "vscode-builds-subscription"
|
||||
KeyVaultName: vscode
|
||||
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: Compilation
|
||||
path: $(Build.ArtifactStagingDirectory)
|
||||
displayName: Download compilation output
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
|
||||
displayName: Extract compilation output
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
cat << EOF > ~/.netrc
|
||||
|
@ -48,31 +38,56 @@ steps:
|
|||
|
||||
- script: |
|
||||
set -e
|
||||
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
|
||||
git fetch distro
|
||||
git merge $(node -p "require('./package.json').distro")
|
||||
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
|
||||
displayName: Merge distro
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
displayName: Switch to Terrapin packages
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
|
||||
- script: |
|
||||
echo -n $(VSCODE_ARCH) > .build/arch
|
||||
mkdir -p .build
|
||||
node build/azure-pipelines/common/computeNodeModulesCacheKey.js $VSCODE_ARCH $ENABLE_TERRAPIN > .build/yarnlockhash
|
||||
displayName: Prepare yarn cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
|
||||
path: .build/node_modules_cache
|
||||
cacheHitVar: NODE_MODULES_RESTORED
|
||||
displayName: Restore node_modules cache
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf .build/node_modules_cache/cache.tgz
|
||||
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Extract node_modules cache
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
npm install -g node-gyp@latest
|
||||
node-gyp --version
|
||||
displayName: Update node-gyp
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['VSCODE_ARCH'], 'x64'))
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
displayName: Switch to Terrapin packages
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
export npm_config_arch=$(NPM_ARCH)
|
||||
export CHILD_CONCURRENCY="1"
|
||||
export npm_config_build_from_source=true
|
||||
|
||||
if [ -z "$CC" ] || [ -z "$CXX" ]; then
|
||||
export CC=$(which gcc-5)
|
||||
export CXX=$(which g++-5)
|
||||
fi
|
||||
|
||||
if [ "$VSCODE_ARCH" == "x64" ]; then
|
||||
export VSCODE_REMOTE_CC=$(which gcc-4.8)
|
||||
export VSCODE_REMOTE_CXX=$(which g++-4.8)
|
||||
export VSCODE_REMOTE_NODE_GYP=$(which node-gyp)
|
||||
fi
|
||||
|
||||
for i in {1..3}; do # try 3 times, for Terrapin
|
||||
yarn --frozen-lockfile && break
|
||||
if [ $i -eq 3 ]; then
|
||||
|
@ -81,21 +96,23 @@ steps:
|
|||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
displayName: Install dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
# remove once https://github.com/prebuild/prebuild-install/pull/140 is merged and found in keytar
|
||||
cd ./node_modules/keytar
|
||||
npx node-gyp rebuild
|
||||
env:
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
displayName: Install dependencies
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn postinstall
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
|
||||
mkdir -p .build/node_modules_cache
|
||||
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Create node_modules archive
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -106,28 +123,41 @@ steps:
|
|||
set -e
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn gulp vscode-linux-$(VSCODE_ARCH)-min-ci
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
|
||||
displayName: Build
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
service xvfb start
|
||||
displayName: Start xvfb
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
|
||||
displayName: Build Server
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
|
||||
displayName: Download Electron and Playwright
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests"
|
||||
displayName: Run unit tests (Electron)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
DISPLAY=:10 yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
|
||||
displayName: Run unit tests (Browser)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn --cwd test/integration/browser compile
|
||||
displayName: Compile integration tests
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
|
@ -142,6 +172,7 @@ steps:
|
|||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
|
||||
DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests"
|
||||
displayName: Run integration tests (Electron)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
|
@ -149,6 +180,7 @@ steps:
|
|||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
|
||||
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
|
||||
displayName: Run integration tests (Browser)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
|
@ -160,6 +192,7 @@ steps:
|
|||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
|
||||
DISPLAY=:10 ./resources/server/test/test-remote-integration.sh
|
||||
displayName: Run remote integration tests (Electron)
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
|
@ -182,17 +215,20 @@ steps:
|
|||
yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-deb"
|
||||
yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-rpm"
|
||||
displayName: Build deb, rpm packages
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
|
||||
displayName: Prepare snap package
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
# needed for code signing
|
||||
- task: UseDotNet@2
|
||||
displayName: "Install .NET Core SDK 2.x"
|
||||
inputs:
|
||||
version: 2.x
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
inputs:
|
||||
|
@ -212,6 +248,7 @@ steps:
|
|||
]
|
||||
SessionTimeout: 120
|
||||
displayName: Codesign rpm
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -221,12 +258,34 @@ steps:
|
|||
VSCODE_ARCH="$(VSCODE_ARCH)" \
|
||||
./build/azure-pipelines/linux/publish.sh
|
||||
displayName: Publish
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(DEB_PATH)
|
||||
artifact: vscode-linux-deb-$(VSCODE_ARCH)
|
||||
displayName: Publish deb package
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(RPM_PATH)
|
||||
artifact: vscode-linux-rpm-$(VSCODE_ARCH)
|
||||
displayName: Publish rpm package
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/vscode-server-linux-$(VSCODE_ARCH).tar.gz
|
||||
artifact: vscode-server-linux-$(VSCODE_ARCH)
|
||||
displayName: Publish server archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/vscode-server-linux-$(VSCODE_ARCH)-web.tar.gz
|
||||
artifact: vscode-server-linux-$(VSCODE_ARCH)-web
|
||||
displayName: Publish web server archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
displayName: "Publish Pipeline Artifact"
|
||||
inputs:
|
||||
artifactName: "snap-$(VSCODE_ARCH)"
|
||||
targetPath: .build/linux/snap-tarball
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: "Component Detection"
|
||||
|
|
|
@ -26,6 +26,17 @@ rm -rf $ROOT/vscode-server-*.tar.*
|
|||
|
||||
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
|
||||
|
||||
# Publish Remote Extension Host (Web)
|
||||
LEGACY_SERVER_BUILD_NAME="vscode-reh-web-$PLATFORM_LINUX"
|
||||
SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web"
|
||||
SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz"
|
||||
SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME"
|
||||
|
||||
rm -rf $ROOT/vscode-server-*-web.tar.*
|
||||
(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME)
|
||||
|
||||
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
|
||||
|
||||
# Publish DEB
|
||||
case $VSCODE_ARCH in
|
||||
x64) DEB_ARCH="amd64" ;;
|
||||
|
@ -58,3 +69,7 @@ mkdir -p $REPO/.build/linux/snap-tarball
|
|||
SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-$VSCODE_ARCH.tar.gz"
|
||||
rm -rf $SNAP_TARBALL_PATH
|
||||
(cd .build/linux && tar -czf $SNAP_TARBALL_PATH snap)
|
||||
|
||||
# Export DEB_PATH, RPM_PATH
|
||||
echo "##vso[task.setvariable variable=DEB_PATH]$DEB_PATH"
|
||||
echo "##vso[task.setvariable variable=RPM_PATH]$RPM_PATH"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
|
@ -54,3 +54,11 @@ steps:
|
|||
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
|
||||
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
|
||||
node build/azure-pipelines/common/createAsset.js "linux-snap-$(VSCODE_ARCH)" package "$SNAP_FILENAME" "$SNAP_PATH"
|
||||
|
||||
# Export SNAP_PATH
|
||||
echo "##vso[task.setvariable variable=SNAP_PATH]$SNAP_PATH"
|
||||
|
||||
- publish: $(SNAP_PATH)
|
||||
artifact: vscode-linux-snap-$(VSCODE_ARCH)
|
||||
displayName: Publish snap package
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const json = require("gulp-json-editor");
|
||||
const buffer = require('gulp-buffer');
|
||||
const filter = require("gulp-filter");
|
||||
const es = require("event-stream");
|
||||
const vfs = require("vinyl-fs");
|
||||
const fancyLog = require("fancy-log");
|
||||
const ansiColors = require("ansi-colors");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
function main() {
|
||||
const quality = process.env['VSCODE_QUALITY'];
|
||||
if (!quality) {
|
||||
console.log('Missing VSCODE_QUALITY, skipping mixin');
|
||||
return;
|
||||
}
|
||||
const productJsonFilter = filter(f => f.relative === 'product.json', { restore: true });
|
||||
fancyLog(ansiColors.blue('[mixin]'), `Mixing in sources:`);
|
||||
return vfs
|
||||
.src(`quality/${quality}/**`, { base: `quality/${quality}` })
|
||||
.pipe(filter(f => !f.isDirectory()))
|
||||
.pipe(productJsonFilter)
|
||||
.pipe(buffer())
|
||||
.pipe(json((o) => {
|
||||
const ossProduct = JSON.parse(fs.readFileSync(path.join(__dirname, '..', '..', 'product.json'), 'utf8'));
|
||||
let builtInExtensions = ossProduct.builtInExtensions;
|
||||
if (Array.isArray(o.builtInExtensions)) {
|
||||
fancyLog(ansiColors.blue('[mixin]'), 'Overwriting built-in extensions:', o.builtInExtensions.map(e => e.name));
|
||||
builtInExtensions = o.builtInExtensions;
|
||||
}
|
||||
else if (o.builtInExtensions) {
|
||||
const include = o.builtInExtensions['include'] || [];
|
||||
const exclude = o.builtInExtensions['exclude'] || [];
|
||||
fancyLog(ansiColors.blue('[mixin]'), 'OSS built-in extensions:', builtInExtensions.map(e => e.name));
|
||||
fancyLog(ansiColors.blue('[mixin]'), 'Including built-in extensions:', include.map(e => e.name));
|
||||
fancyLog(ansiColors.blue('[mixin]'), 'Excluding built-in extensions:', exclude);
|
||||
builtInExtensions = builtInExtensions.filter(ext => !include.find(e => e.name === ext.name) && !exclude.find(name => name === ext.name));
|
||||
builtInExtensions = [...builtInExtensions, ...include];
|
||||
fancyLog(ansiColors.blue('[mixin]'), 'Final built-in extensions:', builtInExtensions.map(e => e.name));
|
||||
}
|
||||
else {
|
||||
fancyLog(ansiColors.blue('[mixin]'), 'Inheriting OSS built-in extensions', builtInExtensions.map(e => e.name));
|
||||
}
|
||||
return Object.assign(Object.assign({ webBuiltInExtensions: ossProduct.webBuiltInExtensions }, o), { builtInExtensions });
|
||||
}))
|
||||
.pipe(productJsonFilter.restore)
|
||||
.pipe(es.mapSync(function (f) {
|
||||
fancyLog(ansiColors.blue('[mixin]'), f.relative, ansiColors.green('✔︎'));
|
||||
return f;
|
||||
}))
|
||||
.pipe(vfs.dest('.'));
|
||||
}
|
||||
main();
|
|
@ -1,4 +1,3 @@
|
|||
trigger: none
|
||||
pr: none
|
||||
|
||||
schedules:
|
||||
|
@ -8,11 +7,108 @@ schedules:
|
|||
include:
|
||||
- master
|
||||
|
||||
parameters:
|
||||
- name: VSCODE_QUALITY
|
||||
displayName: Quality
|
||||
type: string
|
||||
default: insider
|
||||
values:
|
||||
- exploration
|
||||
- insider
|
||||
- stable
|
||||
- name: ENABLE_TERRAPIN
|
||||
displayName: "Enable Terrapin"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_WIN32
|
||||
displayName: "🎯 Windows x64"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_WIN32_32BIT
|
||||
displayName: "🎯 Windows ia32"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_WIN32_ARM64
|
||||
displayName: "🎯 Windows arm64"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_LINUX
|
||||
displayName: "🎯 Linux x64"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_LINUX_ARM64
|
||||
displayName: "🎯 Linux arm64"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_LINUX_ARMHF
|
||||
displayName: "🎯 Linux armhf"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_LINUX_ALPINE
|
||||
displayName: "🎯 Alpine Linux"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_MACOS
|
||||
displayName: "🎯 macOS x64"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_MACOS_ARM64
|
||||
displayName: "🎯 macOS arm64"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_MACOS_UNIVERSAL
|
||||
displayName: "🎯 macOS universal"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_BUILD_WEB
|
||||
displayName: "🎯 Web"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_PUBLISH
|
||||
displayName: "Publish to builds.code.visualstudio.com"
|
||||
type: boolean
|
||||
default: true
|
||||
- name: VSCODE_RELEASE
|
||||
displayName: "Release build if successful"
|
||||
type: boolean
|
||||
default: false
|
||||
- name: VSCODE_COMPILE_ONLY
|
||||
displayName: "Run Compile stage exclusively"
|
||||
type: boolean
|
||||
default: false
|
||||
- name: VSCODE_STEP_ON_IT
|
||||
displayName: "Skip tests"
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
variables:
|
||||
- name: ENABLE_TERRAPIN
|
||||
value: ${{ eq(parameters.ENABLE_TERRAPIN, true) }}
|
||||
- name: VSCODE_QUALITY
|
||||
value: ${{ parameters.VSCODE_QUALITY }}
|
||||
- name: VSCODE_BUILD_STAGE_WINDOWS
|
||||
value: ${{ or(eq(parameters.VSCODE_BUILD_WIN32, true), eq(parameters.VSCODE_BUILD_WIN32_32BIT, true), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}
|
||||
- name: VSCODE_BUILD_STAGE_LINUX
|
||||
value: ${{ or(eq(parameters.VSCODE_BUILD_LINUX, true), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true), eq(parameters.VSCODE_BUILD_LINUX_ALPINE, true), eq(parameters.VSCODE_BUILD_WEB, true)) }}
|
||||
- name: VSCODE_BUILD_STAGE_MACOS
|
||||
value: ${{ or(eq(parameters.VSCODE_BUILD_MACOS, true), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true)) }}
|
||||
- name: VSCODE_CIBUILD
|
||||
value: ${{ in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI') }}
|
||||
- name: VSCODE_PUBLISH
|
||||
value: ${{ and(eq(parameters.VSCODE_PUBLISH, true), eq(variables.VSCODE_CIBUILD, false)) }}
|
||||
- name: VSCODE_SCHEDULEDBUILD
|
||||
value: ${{ eq(variables['Build.Reason'], 'Schedule') }}
|
||||
- name: VSCODE_STEP_ON_IT
|
||||
value: ${{ eq(parameters.VSCODE_STEP_ON_IT, true) }}
|
||||
- name: VSCODE_BUILD_MACOS_UNIVERSAL
|
||||
value: ${{ and(eq(variables['VSCODE_PUBLISH'], true), eq(parameters.VSCODE_BUILD_MACOS, true), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true), eq(parameters.VSCODE_BUILD_MACOS_UNIVERSAL, true)) }}
|
||||
|
||||
resources:
|
||||
containers:
|
||||
- container: vscode-x64
|
||||
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
|
||||
image: vscodehub.azurecr.io/vscode-linux-build-agent:bionic-x64
|
||||
endpoint: VSCodeHub
|
||||
options: --user 0:0
|
||||
- container: vscode-arm64
|
||||
image: vscodehub.azurecr.io/vscode-linux-build-agent:stretch-arm64
|
||||
endpoint: VSCodeHub
|
||||
|
@ -26,177 +122,189 @@ stages:
|
|||
- stage: Compile
|
||||
jobs:
|
||||
- job: Compile
|
||||
pool:
|
||||
vmImage: "Ubuntu-16.04"
|
||||
container: vscode-x64
|
||||
pool: compile
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: product-compile.yml
|
||||
|
||||
- stage: Windows
|
||||
dependsOn:
|
||||
- Compile
|
||||
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
|
||||
pool:
|
||||
vmImage: VS2017-Win2016
|
||||
jobs:
|
||||
- job: Windows
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: win32/product-build-win32.yml
|
||||
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_WINDOWS'], true)) }}:
|
||||
- stage: Windows
|
||||
dependsOn:
|
||||
- Compile
|
||||
pool:
|
||||
vmImage: VS2017-Win2016
|
||||
jobs:
|
||||
|
||||
- job: Windows32
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: ia32
|
||||
steps:
|
||||
- template: win32/product-build-win32.yml
|
||||
- ${{ if eq(parameters.VSCODE_BUILD_WIN32, true) }}:
|
||||
- job: Windows
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: win32/product-build-win32.yml
|
||||
|
||||
- job: WindowsARM64
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
steps:
|
||||
- template: win32/product-build-win32.yml
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WIN32_32BIT, true)) }}:
|
||||
- job: Windows32
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: ia32
|
||||
steps:
|
||||
- template: win32/product-build-win32.yml
|
||||
|
||||
- stage: Linux
|
||||
dependsOn:
|
||||
- Compile
|
||||
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
|
||||
pool:
|
||||
vmImage: "Ubuntu-16.04"
|
||||
jobs:
|
||||
- job: Linux
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
|
||||
container: vscode-x64
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
NPM_ARCH: x64
|
||||
steps:
|
||||
- template: linux/product-build-linux.yml
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:
|
||||
- job: WindowsARM64
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
steps:
|
||||
- template: win32/product-build-win32.yml
|
||||
|
||||
- job: LinuxSnap
|
||||
dependsOn:
|
||||
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_LINUX'], true)) }}:
|
||||
- stage: Linux
|
||||
dependsOn:
|
||||
- Compile
|
||||
pool:
|
||||
vmImage: "Ubuntu-18.04"
|
||||
jobs:
|
||||
|
||||
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
|
||||
- job: Linux
|
||||
container: vscode-x64
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
NPM_ARCH: x64
|
||||
steps:
|
||||
- template: linux/product-build-linux.yml
|
||||
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX, true)) }}:
|
||||
- job: LinuxSnap
|
||||
dependsOn:
|
||||
- Linux
|
||||
container: snapcraft
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: linux/snap-build-linux.yml
|
||||
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:
|
||||
- job: LinuxArmhf
|
||||
container: vscode-armhf
|
||||
variables:
|
||||
VSCODE_ARCH: armhf
|
||||
NPM_ARCH: armv7l
|
||||
steps:
|
||||
- template: linux/product-build-linux.yml
|
||||
|
||||
# TODO@joaomoreno: We don't ship ARM snaps for now
|
||||
- ${{ if and(false, eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:
|
||||
- job: LinuxSnapArmhf
|
||||
dependsOn:
|
||||
- LinuxArmhf
|
||||
container: snapcraft
|
||||
variables:
|
||||
VSCODE_ARCH: armhf
|
||||
steps:
|
||||
- template: linux/snap-build-linux.yml
|
||||
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true)) }}:
|
||||
- job: LinuxArm64
|
||||
container: vscode-arm64
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
NPM_ARCH: arm64
|
||||
steps:
|
||||
- template: linux/product-build-linux.yml
|
||||
|
||||
# TODO@joaomoreno: We don't ship ARM snaps for now
|
||||
- ${{ if and(false, eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true)) }}:
|
||||
- job: LinuxSnapArm64
|
||||
dependsOn:
|
||||
- LinuxArm64
|
||||
container: snapcraft
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
steps:
|
||||
- template: linux/snap-build-linux.yml
|
||||
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ALPINE, true)) }}:
|
||||
- job: LinuxAlpine
|
||||
steps:
|
||||
- template: linux/product-build-alpine.yml
|
||||
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WEB, true)) }}:
|
||||
- job: LinuxWeb
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: web/product-build-web.yml
|
||||
|
||||
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_MACOS'], true)) }}:
|
||||
- stage: macOS
|
||||
dependsOn:
|
||||
- Compile
|
||||
pool:
|
||||
vmImage: macOS-latest
|
||||
jobs:
|
||||
|
||||
- ${{ if eq(parameters.VSCODE_BUILD_MACOS, true) }}:
|
||||
- job: macOS
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: darwin/product-build-darwin.yml
|
||||
|
||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true)) }}:
|
||||
- job: macOSARM64
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
steps:
|
||||
- template: darwin/product-build-darwin.yml
|
||||
|
||||
- ${{ if eq(variables['VSCODE_BUILD_MACOS_UNIVERSAL'], true) }}:
|
||||
- job: macOSUniversal
|
||||
dependsOn:
|
||||
- macOS
|
||||
- macOSARM64
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: universal
|
||||
steps:
|
||||
- template: darwin/product-build-darwin.yml
|
||||
|
||||
- ${{ if and(eq(variables['VSCODE_PUBLISH'], true), eq(parameters.VSCODE_COMPILE_ONLY, false)) }}:
|
||||
- stage: Mooncake
|
||||
dependsOn:
|
||||
- ${{ if eq(variables['VSCODE_BUILD_STAGE_WINDOWS'], true) }}:
|
||||
- Windows
|
||||
- ${{ if eq(variables['VSCODE_BUILD_STAGE_LINUX'], true) }}:
|
||||
- Linux
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
|
||||
container: snapcraft
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: linux/snap-build-linux.yml
|
||||
- ${{ if eq(variables['VSCODE_BUILD_STAGE_MACOS'], true) }}:
|
||||
- macOS
|
||||
condition: succeededOrFailed()
|
||||
pool:
|
||||
vmImage: "Ubuntu-18.04"
|
||||
jobs:
|
||||
- job: SyncMooncake
|
||||
displayName: Sync Mooncake
|
||||
steps:
|
||||
- template: sync-mooncake.yml
|
||||
|
||||
- job: LinuxArmhf
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
|
||||
container: vscode-armhf
|
||||
variables:
|
||||
VSCODE_ARCH: armhf
|
||||
NPM_ARCH: armv7l
|
||||
steps:
|
||||
- template: linux/product-build-linux.yml
|
||||
|
||||
- job: LinuxSnapArmhf
|
||||
dependsOn:
|
||||
- LinuxArmhf
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
|
||||
container: snapcraft
|
||||
variables:
|
||||
VSCODE_ARCH: armhf
|
||||
steps:
|
||||
- template: linux/snap-build-linux.yml
|
||||
|
||||
- job: LinuxArm64
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
|
||||
container: vscode-arm64
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
NPM_ARCH: arm64
|
||||
steps:
|
||||
- template: linux/product-build-linux.yml
|
||||
|
||||
- job: LinuxSnapArm64
|
||||
dependsOn:
|
||||
- LinuxArm64
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
|
||||
container: snapcraft
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
steps:
|
||||
- template: linux/snap-build-linux.yml
|
||||
|
||||
- job: LinuxAlpine
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
|
||||
steps:
|
||||
- template: linux/product-build-alpine.yml
|
||||
|
||||
- job: LinuxWeb
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WEB'], 'true'))
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: web/product-build-web.yml
|
||||
|
||||
- stage: macOS
|
||||
dependsOn:
|
||||
- Compile
|
||||
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
|
||||
pool:
|
||||
vmImage: macOS-latest
|
||||
jobs:
|
||||
- job: macOS
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: darwin/product-build-darwin.yml
|
||||
|
||||
- stage: macOSARM64
|
||||
dependsOn:
|
||||
- Compile
|
||||
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
|
||||
pool:
|
||||
vmImage: macOS-latest
|
||||
jobs:
|
||||
- job: macOSARM64
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS_ARM64'], 'true'))
|
||||
timeoutInMinutes: 90
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
steps:
|
||||
- template: darwin/product-build-darwin.yml
|
||||
|
||||
- stage: Mooncake
|
||||
dependsOn:
|
||||
- Windows
|
||||
- Linux
|
||||
- macOS
|
||||
- macOSARM64
|
||||
condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
|
||||
pool:
|
||||
vmImage: "Ubuntu-16.04"
|
||||
jobs:
|
||||
- job: SyncMooncake
|
||||
displayName: Sync Mooncake
|
||||
steps:
|
||||
- template: sync-mooncake.yml
|
||||
|
||||
- stage: Publish
|
||||
dependsOn:
|
||||
- Windows
|
||||
- Linux
|
||||
- macOS
|
||||
- macOSARM64
|
||||
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule'))))
|
||||
pool:
|
||||
vmImage: "Ubuntu-16.04"
|
||||
jobs:
|
||||
- job: BuildService
|
||||
displayName: Build Service
|
||||
steps:
|
||||
- template: release.yml
|
||||
- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), or(eq(parameters.VSCODE_RELEASE, true), and(in(parameters.VSCODE_QUALITY, 'insider', 'exploration'), eq(variables['VSCODE_SCHEDULEDBUILD'], true)))) }}:
|
||||
- stage: Release
|
||||
dependsOn:
|
||||
- ${{ if eq(variables['VSCODE_BUILD_STAGE_WINDOWS'], true) }}:
|
||||
- Windows
|
||||
- ${{ if eq(variables['VSCODE_BUILD_STAGE_LINUX'], true) }}:
|
||||
- Linux
|
||||
- ${{ if eq(variables['VSCODE_BUILD_STAGE_MACOS'], true) }}:
|
||||
- macOS
|
||||
pool:
|
||||
vmImage: "Ubuntu-18.04"
|
||||
jobs:
|
||||
- job: ReleaseBuild
|
||||
displayName: Release Build
|
||||
steps:
|
||||
- template: release.yml
|
||||
|
|
|
@ -1,36 +1,17 @@
|
|||
steps:
|
||||
- script: |
|
||||
mkdir -p .build
|
||||
echo -n $BUILD_SOURCEVERSION > .build/commit
|
||||
echo -n $VSCODE_QUALITY > .build/quality
|
||||
echo -n $ENABLE_TERRAPIN > .build/terrapin
|
||||
displayName: Prepare compilation cache flag
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
|
||||
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
|
||||
vstsFeed: "npm-vscode"
|
||||
platformIndependent: true
|
||||
alias: "Compilation"
|
||||
dryRun: true
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
versionSpec: "12.x"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
versionSpec: "1.x"
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
|
||||
- task: AzureKeyVault@1
|
||||
displayName: "Azure Key Vault: Get Secrets"
|
||||
inputs:
|
||||
azureSubscription: "vscode-builds-subscription"
|
||||
KeyVaultName: vscode
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -43,36 +24,46 @@ steps:
|
|||
git config user.email "vscode@microsoft.com"
|
||||
git config user.name "VSCode"
|
||||
displayName: Prepare tooling
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
|
||||
git fetch distro
|
||||
git merge $(node -p "require('./package.json').distro")
|
||||
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
|
||||
displayName: Merge distro
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
|
||||
- script: |
|
||||
mkdir -p .build
|
||||
node build/azure-pipelines/common/computeNodeModulesCacheKey.js $VSCODE_ARCH $ENABLE_TERRAPIN > .build/yarnlockhash
|
||||
displayName: Prepare yarn cache flags
|
||||
|
||||
# using `genericNodeModules` instead of `nodeModules` here to avoid sharing the cache with builds running inside containers
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: 'genericNodeModules | $(Agent.OS) | .build/yarnlockhash'
|
||||
path: .build/node_modules_cache
|
||||
cacheHitVar: NODE_MODULES_RESTORED
|
||||
displayName: Restore node_modules cache
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf .build/node_modules_cache/cache.tgz
|
||||
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Extract node_modules cache
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
displayName: Switch to Terrapin packages
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
|
||||
- script: |
|
||||
echo -n $(VSCODE_ARCH) > .build/arch
|
||||
displayName: Prepare yarn cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
displayName: Switch to Terrapin packages
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
sudo apt update -y
|
||||
sudo apt install -y build-essential pkg-config libx11-dev libx11-xcb-dev libxkbfile-dev libsecret-1-dev libnotify-bin
|
||||
displayName: Install build tools
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
export CHILD_CONCURRENCY="1"
|
||||
for i in {1..3}; do # try 3 times, for Terrapin
|
||||
yarn --frozen-lockfile && break
|
||||
if [ $i -eq 3 ]; then
|
||||
|
@ -81,67 +72,50 @@ steps:
|
|||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
env:
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
displayName: Install dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn postinstall
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), eq(variables['CacheRestored'], 'true'))
|
||||
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
|
||||
mkdir -p .build/node_modules_cache
|
||||
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Create node_modules archive
|
||||
|
||||
# Mixin must run before optimize, because the CSS loader will
|
||||
# inline small SVGs
|
||||
# Mixin must run before optimize, because the CSS loader will inline small SVGs
|
||||
- script: |
|
||||
set -e
|
||||
node build/azure-pipelines/mixin
|
||||
displayName: Mix in quality
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn gulp hygiene
|
||||
yarn monaco-compile-check
|
||||
yarn valid-layers-check
|
||||
displayName: Run hygiene, monaco compile & valid layers checks
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -
|
||||
./build/azure-pipelines/common/extract-telemetry.sh
|
||||
displayName: Extract Telemetry
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
AZURE_WEBVIEW_STORAGE_ACCESS_KEY="$(vscode-webview-storage-key)" \
|
||||
./build/azure-pipelines/common/publish-webview.sh
|
||||
displayName: Publish Webview
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn gulp compile-build
|
||||
yarn gulp compile-extensions-build
|
||||
yarn gulp minify-vscode
|
||||
yarn gulp minify-vscode-reh
|
||||
yarn gulp minify-vscode-reh-web
|
||||
displayName: Compile
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
yarn npm-run-all -lp core-ci extensions-ci hygiene eslint valid-layers-check
|
||||
displayName: Compile & Hygiene
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \
|
||||
node build/azure-pipelines/upload-sourcemaps
|
||||
displayName: Upload sourcemaps
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -
|
||||
./build/azure-pipelines/common/extract-telemetry.sh
|
||||
displayName: Extract Telemetry
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
AZURE_WEBVIEW_STORAGE_ACCESS_KEY="$(vscode-webview-storage-key)" \
|
||||
./build/azure-pipelines/common/publish-webview.sh
|
||||
displayName: Publish Webview
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -149,13 +123,16 @@ steps:
|
|||
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
|
||||
node build/azure-pipelines/common/createBuild.js $VERSION
|
||||
displayName: Create build
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
# we gotta tarball everything in order to preserve file permissions
|
||||
- script: |
|
||||
set -e
|
||||
tar -czf $(Build.ArtifactStagingDirectory)/compilation.tar.gz .build out-*
|
||||
displayName: Compress compilation artifact
|
||||
|
||||
- task: PublishPipelineArtifact@1
|
||||
inputs:
|
||||
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
|
||||
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
|
||||
vstsFeed: "npm-vscode"
|
||||
platformIndependent: true
|
||||
alias: "Compilation"
|
||||
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/compilation.tar.gz
|
||||
artifactName: Compilation
|
||||
displayName: Publish compilation artifact
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
node_modules/
|
||||
*.js
|
|
@ -0,0 +1,36 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const cp = require("child_process");
|
||||
let tag = '';
|
||||
try {
|
||||
tag = cp
|
||||
.execSync('git describe --tags `git rev-list --tags --max-count=1`')
|
||||
.toString()
|
||||
.trim();
|
||||
if (!isValidTag(tag)) {
|
||||
throw Error(`Invalid tag ${tag}`);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
console.error(err);
|
||||
console.error('Failed to update types');
|
||||
process.exit(1);
|
||||
}
|
||||
function isValidTag(t) {
|
||||
if (t.split('.').length !== 3) {
|
||||
return false;
|
||||
}
|
||||
const [major, minor, bug] = t.split('.');
|
||||
// Only release for tags like 1.34.0
|
||||
if (bug !== '0') {
|
||||
return false;
|
||||
}
|
||||
if (isNaN(parseInt(major, 10)) || isNaN(parseInt(minor, 10))) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
|
@ -9,7 +9,7 @@ pr: none
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const fs = require("fs");
|
||||
const cp = require("child_process");
|
||||
const path = require("path");
|
||||
let tag = '';
|
||||
try {
|
||||
tag = cp
|
||||
.execSync('git describe --tags `git rev-list --tags --max-count=1`')
|
||||
.toString()
|
||||
.trim();
|
||||
const dtsUri = `https://raw.githubusercontent.com/microsoft/vscode/${tag}/src/vs/vscode.d.ts`;
|
||||
const outPath = path.resolve(process.cwd(), 'DefinitelyTyped/types/vscode/index.d.ts');
|
||||
cp.execSync(`curl ${dtsUri} --output ${outPath}`);
|
||||
updateDTSFile(outPath, tag);
|
||||
console.log(`Done updating vscode.d.ts at ${outPath}`);
|
||||
}
|
||||
catch (err) {
|
||||
console.error(err);
|
||||
console.error('Failed to update types');
|
||||
process.exit(1);
|
||||
}
|
||||
function updateDTSFile(outPath, tag) {
|
||||
const oldContent = fs.readFileSync(outPath, 'utf-8');
|
||||
const newContent = getNewFileContent(oldContent, tag);
|
||||
fs.writeFileSync(outPath, newContent);
|
||||
}
|
||||
function repeat(str, times) {
|
||||
const result = new Array(times);
|
||||
for (let i = 0; i < times; i++) {
|
||||
result[i] = str;
|
||||
}
|
||||
return result.join('');
|
||||
}
|
||||
function convertTabsToSpaces(str) {
|
||||
return str.replace(/\t/gm, value => repeat(' ', value.length));
|
||||
}
|
||||
function getNewFileContent(content, tag) {
|
||||
const oldheader = [
|
||||
`/*---------------------------------------------------------------------------------------------`,
|
||||
` * Copyright (c) Microsoft Corporation. All rights reserved.`,
|
||||
` * Licensed under the MIT License. See License.txt in the project root for license information.`,
|
||||
` *--------------------------------------------------------------------------------------------*/`
|
||||
].join('\n');
|
||||
return convertTabsToSpaces(getNewFileHeader(tag) + content.slice(oldheader.length));
|
||||
}
|
||||
function getNewFileHeader(tag) {
|
||||
const [major, minor] = tag.split('.');
|
||||
const shorttag = `${major}.${minor}`;
|
||||
const header = [
|
||||
`// Type definitions for Visual Studio Code ${shorttag}`,
|
||||
`// Project: https://github.com/microsoft/vscode`,
|
||||
`// Definitions by: Visual Studio Code Team, Microsoft <https://github.com/microsoft>`,
|
||||
`// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped`,
|
||||
``,
|
||||
`/*---------------------------------------------------------------------------------------------`,
|
||||
` * Copyright (c) Microsoft Corporation. All rights reserved.`,
|
||||
` * Licensed under the MIT License.`,
|
||||
` * See https://github.com/microsoft/vscode/blob/master/LICENSE.txt for license information.`,
|
||||
` *--------------------------------------------------------------------------------------------*/`,
|
||||
``,
|
||||
`/**`,
|
||||
` * Type Definition for Visual Studio Code ${shorttag} Extension API`,
|
||||
` * See https://code.visualstudio.com/api for more information`,
|
||||
` */`
|
||||
].join('\n');
|
||||
return header;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const path = require("path");
|
||||
const es = require("event-stream");
|
||||
const vfs = require("vinyl-fs");
|
||||
const util = require("../lib/util");
|
||||
const filter = require("gulp-filter");
|
||||
const gzip = require("gulp-gzip");
|
||||
const azure = require('gulp-azure-storage');
|
||||
const root = path.dirname(path.dirname(__dirname));
|
||||
const commit = util.getVersion(root);
|
||||
function main() {
|
||||
return vfs.src('**', { cwd: '../vscode-web', base: '../vscode-web', dot: true })
|
||||
.pipe(filter(f => !f.isDirectory()))
|
||||
.pipe(gzip({ append: false }))
|
||||
.pipe(es.through(function (data) {
|
||||
console.log('Uploading CDN file:', data.relative); // debug
|
||||
this.emit('data', data);
|
||||
}))
|
||||
.pipe(azure.upload({
|
||||
account: process.env.AZURE_STORAGE_ACCOUNT,
|
||||
key: process.env.AZURE_STORAGE_ACCESS_KEY,
|
||||
container: process.env.VSCODE_QUALITY,
|
||||
prefix: commit + '/',
|
||||
contentSettings: {
|
||||
contentEncoding: 'gzip',
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
}));
|
||||
}
|
||||
main();
|
|
@ -0,0 +1,55 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const path = require("path");
|
||||
const es = require("event-stream");
|
||||
const vfs = require("vinyl-fs");
|
||||
const util = require("../lib/util");
|
||||
// @ts-ignore
|
||||
const deps = require("../lib/dependencies");
|
||||
const azure = require('gulp-azure-storage');
|
||||
const root = path.dirname(path.dirname(__dirname));
|
||||
const commit = util.getVersion(root);
|
||||
// optionally allow to pass in explicit base/maps to upload
|
||||
const [, , base, maps] = process.argv;
|
||||
function src(base, maps = `${base}/**/*.map`) {
|
||||
return vfs.src(maps, { base })
|
||||
.pipe(es.mapSync((f) => {
|
||||
f.path = `${f.base}/core/${f.relative}`;
|
||||
return f;
|
||||
}));
|
||||
}
|
||||
function main() {
|
||||
const sources = [];
|
||||
// vscode client maps (default)
|
||||
if (!base) {
|
||||
const vs = src('out-vscode-min'); // client source-maps only
|
||||
sources.push(vs);
|
||||
const productionDependencies = deps.getProductionDependencies(root);
|
||||
const productionDependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => `./${d}/**/*.map`);
|
||||
const nodeModules = vfs.src(productionDependenciesSrc, { base: '.' })
|
||||
.pipe(util.cleanNodeModules(path.join(root, 'build', '.moduleignore')));
|
||||
sources.push(nodeModules);
|
||||
const extensionsOut = vfs.src(['.build/extensions/**/*.js.map', '!**/node_modules/**'], { base: '.build' });
|
||||
sources.push(extensionsOut);
|
||||
}
|
||||
// specific client base/maps
|
||||
else {
|
||||
sources.push(src(base, maps));
|
||||
}
|
||||
return es.merge(...sources)
|
||||
.pipe(es.through(function (data) {
|
||||
console.log('Uploading Sourcemap', data.relative); // debug
|
||||
this.emit('data', data);
|
||||
}))
|
||||
.pipe(azure.upload({
|
||||
account: process.env.AZURE_STORAGE_ACCOUNT,
|
||||
key: process.env.AZURE_STORAGE_ACCESS_KEY,
|
||||
container: 'sourcemaps',
|
||||
prefix: commit + '/'
|
||||
}));
|
||||
}
|
||||
main();
|
|
@ -11,7 +11,7 @@ import * as Vinyl from 'vinyl';
|
|||
import * as vfs from 'vinyl-fs';
|
||||
import * as util from '../lib/util';
|
||||
// @ts-ignore
|
||||
import * as deps from '../dependencies';
|
||||
import * as deps from '../lib/dependencies';
|
||||
const azure = require('gulp-azure-storage');
|
||||
|
||||
const root = path.dirname(path.dirname(__dirname));
|
||||
|
|
|
@ -1,28 +1,7 @@
|
|||
steps:
|
||||
- script: |
|
||||
mkdir -p .build
|
||||
echo -n $BUILD_SOURCEVERSION > .build/commit
|
||||
echo -n $VSCODE_QUALITY > .build/quality
|
||||
echo -n $ENABLE_TERRAPIN > .build/terrapin
|
||||
displayName: Prepare compilation cache flag
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
|
||||
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
|
||||
vstsFeed: "npm-vscode"
|
||||
platformIndependent: true
|
||||
alias: "Compilation"
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
exit 1
|
||||
displayName: Check RestoreCache
|
||||
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
|
@ -34,6 +13,17 @@ steps:
|
|||
azureSubscription: "vscode-builds-subscription"
|
||||
KeyVaultName: vscode
|
||||
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: Compilation
|
||||
path: $(Build.ArtifactStagingDirectory)
|
||||
displayName: Download compilation output
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
|
||||
displayName: Extract compilation output
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
cat << EOF > ~/.netrc
|
||||
|
@ -48,30 +38,35 @@ steps:
|
|||
|
||||
- script: |
|
||||
set -e
|
||||
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
|
||||
git fetch distro
|
||||
git merge $(node -p "require('./package.json').distro")
|
||||
git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro")
|
||||
displayName: Merge distro
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
displayName: Switch to Terrapin packages
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
mkdir -p .build
|
||||
node build/azure-pipelines/common/computeNodeModulesCacheKey.js "web" $ENABLE_TERRAPIN > .build/yarnlockhash
|
||||
displayName: Prepare yarn cache flags
|
||||
|
||||
- script: |
|
||||
echo -n "web" > .build/arch
|
||||
displayName: Prepare yarn cache flag
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
key: 'nodeModules | $(Agent.OS) | .build/yarnlockhash'
|
||||
path: .build/node_modules_cache
|
||||
cacheHitVar: NODE_MODULES_RESTORED
|
||||
displayName: Restore node_modules cache
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
tar -xzf .build/node_modules_cache/cache.tgz
|
||||
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Extract node_modules cache
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
displayName: Switch to Terrapin packages
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
export CHILD_CONCURRENCY="1"
|
||||
for i in {1..3}; do # try 3 times, for Terrapin
|
||||
yarn --frozen-lockfile && break
|
||||
if [ $i -eq 3 ]; then
|
||||
|
@ -80,21 +75,19 @@ steps:
|
|||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
env:
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
displayName: Install dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
yarn postinstall
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt
|
||||
mkdir -p .build/node_modules_cache
|
||||
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Create node_modules archive
|
||||
|
||||
- script: |
|
||||
set -e
|
||||
|
@ -130,3 +123,8 @@ steps:
|
|||
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
|
||||
./build/azure-pipelines/web/publish.sh
|
||||
displayName: Publish
|
||||
|
||||
- publish: $(Agent.BuildDirectory)/vscode-web.tar.gz
|
||||
artifact: vscode-web-standalone
|
||||
displayName: Publish web archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="ESRP" value="https://microsoft.pkgs.visualstudio.com/_packaging/ESRP/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="ESRP" value="https://microsoft.pkgs.visualstudio.com/_packaging/ESRP/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<disabledPackageSources>
|
||||
<clear />
|
||||
</disabledPackageSources>
|
||||
</configuration>
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
versionSpec: "1.x"
|
||||
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: "2.x"
|
||||
addToPath: true
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "vscode-build-cache"
|
||||
|
||||
- powershell: |
|
||||
yarn --frozen-lockfile
|
||||
env:
|
||||
CHILD_CONCURRENCY: "1"
|
||||
displayName: Install Dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "vscode-build-cache"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { yarn postinstall }
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
yarn electron
|
||||
displayName: Download Electron
|
||||
|
||||
- powershell: |
|
||||
yarn monaco-compile-check
|
||||
displayName: Run Monaco Editor Checks
|
||||
|
||||
- script: |
|
||||
yarn valid-layers-check
|
||||
displayName: Run Valid Layers Checks
|
||||
|
||||
- powershell: |
|
||||
yarn compile
|
||||
displayName: Compile Sources
|
||||
|
||||
- powershell: |
|
||||
yarn download-builtin-extensions
|
||||
displayName: Download Built-in Extensions
|
||||
|
||||
- powershell: |
|
||||
.\scripts\test.bat --tfs "Unit Tests"
|
||||
displayName: Run Unit Tests (Electron)
|
||||
|
||||
- powershell: |
|
||||
yarn test-browser --browser chromium --browser firefox --tfs "Browser Unit Tests"
|
||||
displayName: Run Unit Tests (Browser)
|
||||
|
||||
- powershell: |
|
||||
.\scripts\test-integration.bat --tfs "Integration Tests"
|
||||
displayName: Run Integration Tests (Electron)
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
displayName: "Publish Crash Reports"
|
||||
inputs:
|
||||
artifactName: crash-dump-windows
|
||||
targetPath: .build\crashes
|
||||
continueOnError: true
|
||||
condition: failed()
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Tests Results
|
||||
inputs:
|
||||
testResultsFiles: "*-results.xml"
|
||||
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
|
||||
condition: succeededOrFailed()
|
|
@ -3,7 +3,7 @@ $ErrorActionPreference = "Stop"
|
|||
|
||||
$CertBytes = [System.Convert]::FromBase64String($CertBase64)
|
||||
$CertCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
|
||||
$CertCollection.Import($CertBytes, $null, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
|
||||
$CertCollection.Import($CertBytes, $null, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable -bxor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::PersistKeySet)
|
||||
|
||||
$CertStore = New-Object System.Security.Cryptography.X509Certificates.X509Store("My","LocalMachine")
|
||||
$CertStore.Open("ReadWrite")
|
||||
|
|
|
@ -1,28 +1,7 @@
|
|||
steps:
|
||||
- powershell: |
|
||||
mkdir .build -ea 0
|
||||
"$env:BUILD_SOURCEVERSION" | Out-File -Encoding ascii -NoNewLine .build\commit
|
||||
"$env:VSCODE_QUALITY" | Out-File -Encoding ascii -NoNewLine .build\quality
|
||||
"$env:ENABLE_TERRAPIN" | Out-File -Encoding ascii -NoNewLine .build\terrapin
|
||||
displayName: Prepare compilation cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: "build/.cachesalt, .build/commit, .build/quality, .build/terrapin"
|
||||
targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
|
||||
vstsFeed: "npm-vscode"
|
||||
platformIndependent: true
|
||||
alias: "Compilation"
|
||||
|
||||
- powershell: |
|
||||
$ErrorActionPreference = "Stop"
|
||||
exit 1
|
||||
displayName: Check RestoreCache
|
||||
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
|
||||
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.14.1"
|
||||
versionSpec: "12.18.3"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
|
||||
inputs:
|
||||
|
@ -39,6 +18,18 @@ steps:
|
|||
azureSubscription: "vscode-builds-subscription"
|
||||
KeyVaultName: vscode
|
||||
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: Compilation
|
||||
path: $(Build.ArtifactStagingDirectory)
|
||||
displayName: Download compilation output
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { tar --force-local -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz }
|
||||
displayName: Extract compilation output
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
@ -51,26 +42,34 @@ steps:
|
|||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git" }
|
||||
exec { git fetch distro }
|
||||
exec { git merge $(node -p "require('./package.json').distro") }
|
||||
exec { git pull --no-rebase https://github.com/$(VSCODE_MIXIN_REPO).git $(node -p "require('./package.json').distro") }
|
||||
displayName: Merge distro
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
displayName: Switch to Terrapin packages
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
"$(VSCODE_ARCH)" | Out-File -Encoding ascii -NoNewLine .build\arch
|
||||
"$env:ENABLE_TERRAPIN" | Out-File -Encoding ascii -NoNewLine .build\terrapin
|
||||
node build/azure-pipelines/common/computeNodeModulesCacheKey.js > .build/yarnlockhash
|
||||
displayName: Prepare yarn cache flags
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
key: 'nodeModules | $(Agent.OS) | .build/arch, .build/terrapin, .build/yarnlockhash'
|
||||
path: .build/node_modules_cache
|
||||
cacheHitVar: NODE_MODULES_RESTORED
|
||||
displayName: Restore node_modules cache
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { 7z.exe x .build/node_modules_cache/cache.7z -aos }
|
||||
condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Extract node_modules cache
|
||||
|
||||
- script: |
|
||||
npx https://aka.ms/enablesecurefeed standAlone
|
||||
timeoutInMinutes: 5
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), eq(variables['ENABLE_TERRAPIN'], 'true'))
|
||||
displayName: Switch to Terrapin packages
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
|
@ -79,22 +78,20 @@ steps:
|
|||
$env:npm_config_arch="$(VSCODE_ARCH)"
|
||||
$env:CHILD_CONCURRENCY="1"
|
||||
retry { exec { yarn --frozen-lockfile } }
|
||||
env:
|
||||
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
||||
displayName: Install dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: ".build/arch, .build/terrapin, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
|
||||
targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
|
||||
vstsFeed: "npm-vscode"
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { yarn postinstall }
|
||||
displayName: Run postinstall scripts
|
||||
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
|
||||
exec { node build/azure-pipelines/common/listNodeModules.js .build/node_modules_list.txt }
|
||||
exec { mkdir -Force .build/node_modules_cache }
|
||||
exec { 7z.exe a .build/node_modules_cache/cache.7z -mx3 `@.build/node_modules_list.txt }
|
||||
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
|
||||
displayName: Create node_modules archive
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
|
@ -107,11 +104,18 @@ steps:
|
|||
$ErrorActionPreference = "Stop"
|
||||
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-min-ci" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-code-helper" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-inno-updater" }
|
||||
echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH)"
|
||||
displayName: Build
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-code-helper" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-inno-updater" }
|
||||
displayName: Prepare Package
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
@ -122,12 +126,21 @@ steps:
|
|||
displayName: Build Server
|
||||
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
|
||||
exec { yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install" }
|
||||
displayName: Download Electron and Playwright
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { yarn electron $(VSCODE_ARCH) }
|
||||
exec { .\scripts\test.bat --build --tfs "Unit Tests" }
|
||||
displayName: Run unit tests (Electron)
|
||||
timeoutInMinutes: 7
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
|
@ -135,6 +148,14 @@ steps:
|
|||
$ErrorActionPreference = "Stop"
|
||||
exec { yarn test-browser --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
|
||||
displayName: Run unit tests (Browser)
|
||||
timeoutInMinutes: 7
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { yarn --cwd test/integration/browser compile }
|
||||
displayName: Compile integration tests
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
|
@ -148,6 +169,7 @@ steps:
|
|||
$AppNameShort = $AppProductJson.nameShort
|
||||
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\scripts\test-integration.bat --build --tfs "Integration Tests" }
|
||||
displayName: Run integration tests (Electron)
|
||||
timeoutInMinutes: 10
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
|
@ -155,6 +177,7 @@ steps:
|
|||
$ErrorActionPreference = "Stop"
|
||||
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-web-integration.bat --browser firefox }
|
||||
displayName: Run integration tests (Browser)
|
||||
timeoutInMinutes: 7
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
|
@ -165,6 +188,7 @@ steps:
|
|||
$AppNameShort = $AppProductJson.nameShort
|
||||
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-remote-integration.bat }
|
||||
displayName: Run remote integration tests (Electron)
|
||||
timeoutInMinutes: 7
|
||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
|
@ -180,7 +204,7 @@ steps:
|
|||
inputs:
|
||||
testResultsFiles: "*-results.xml"
|
||||
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
|
||||
condition: and(succeededOrFailed(), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
condition: and(succeededOrFailed(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
inputs:
|
||||
|
@ -236,6 +260,7 @@ steps:
|
|||
}
|
||||
]
|
||||
SessionTimeout: 120
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: Install ESRPClient.exe
|
||||
|
@ -245,11 +270,13 @@ steps:
|
|||
nugetConfigPath: 'build\azure-pipelines\win32\ESRPClient\NuGet.config'
|
||||
externalFeedCredentials: "ESRP Nuget"
|
||||
restoreDirectory: packages
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: ESRPImportCertTask@1
|
||||
displayName: Import ESRP Request Signing Certificate
|
||||
inputs:
|
||||
ESRP: "ESRP CodeSign"
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- task: PowerShell@2
|
||||
inputs:
|
||||
|
@ -257,6 +284,7 @@ steps:
|
|||
filePath: .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1
|
||||
arguments: "$(ESRP-SSL-AADAuth)"
|
||||
displayName: Import ESRP Auth Certificate
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
|
@ -266,6 +294,32 @@ steps:
|
|||
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
|
||||
.\build\azure-pipelines\win32\publish.ps1
|
||||
displayName: Publish
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\archive\VSCode-win32-$(VSCODE_ARCH).zip
|
||||
artifact: vscode-win32-$(VSCODE_ARCH)
|
||||
displayName: Publish archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\system-setup\VSCodeSetup.exe
|
||||
artifact: vscode-win32-$(VSCODE_ARCH)-setup
|
||||
displayName: Publish system setup
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\user-setup\VSCodeSetup.exe
|
||||
artifact: vscode-win32-$(VSCODE_ARCH)-user-setup
|
||||
displayName: Publish user setup
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
|
||||
|
||||
- publish: $(System.DefaultWorkingDirectory)\.build\vscode-server-win32-$(VSCODE_ARCH).zip
|
||||
artifact: vscode-server-win32-$(VSCODE_ARCH)
|
||||
displayName: Publish server archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- publish: $(System.DefaultWorkingDirectory)\.build\vscode-server-win32-$(VSCODE_ARCH)-web.zip
|
||||
artifact: vscode-server-win32-$(VSCODE_ARCH)-web
|
||||
displayName: Publish web server archive
|
||||
condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: "Component Detection"
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const os = require('os');
|
||||
const { remote } = require('electron');
|
||||
const dialog = remote.dialog;
|
||||
const { ipcRenderer } = require('electron');
|
||||
|
||||
const builtInExtensionsPath = path.join(__dirname, '..', '..', 'product.json');
|
||||
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
|
||||
|
@ -84,17 +83,13 @@ function render(el, state) {
|
|||
}
|
||||
|
||||
const localInput = renderOption(form, `local-${ext.name}`, 'Local', 'local', !!local);
|
||||
localInput.onchange = function () {
|
||||
const result = dialog.showOpenDialog(remote.getCurrentWindow(), {
|
||||
title: 'Choose Folder',
|
||||
properties: ['openDirectory']
|
||||
});
|
||||
localInput.onchange = async function () {
|
||||
const result = await ipcRenderer.invoke('pickdir');
|
||||
|
||||
if (result && result.length >= 1) {
|
||||
control[ext.name] = result[0];
|
||||
if (result) {
|
||||
control[ext.name] = result;
|
||||
setState({ builtin, control });
|
||||
}
|
||||
|
||||
setState({ builtin, control });
|
||||
};
|
||||
|
||||
if (local) {
|
||||
|
|
|
@ -3,12 +3,25 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
const { app, BrowserWindow } = require('electron');
|
||||
const { app, BrowserWindow, ipcMain, dialog } = require('electron');
|
||||
const url = require('url');
|
||||
const path = require('path');
|
||||
|
||||
let window = null;
|
||||
|
||||
ipcMain.handle('pickdir', async () => {
|
||||
const result = await dialog.showOpenDialog(window, {
|
||||
title: 'Choose Folder',
|
||||
properties: ['openDirectory']
|
||||
});
|
||||
|
||||
if (result.canceled || result.filePaths.length < 1) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return result.filePaths[0];
|
||||
});
|
||||
|
||||
app.once('ready', () => {
|
||||
window = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, webviewTag: true, enableWebSQL: false, nativeWindowOpen: true } });
|
||||
window.setMenuBarVisibility(false);
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const vscode_universal_1 = require("vscode-universal");
|
||||
const fs = require("fs-extra");
|
||||
const path = require("path");
|
||||
const plist = require("plist");
|
||||
const product = require("../../product.json");
|
||||
async function main() {
|
||||
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
|
||||
const arch = process.env['VSCODE_ARCH'];
|
||||
if (!buildDir) {
|
||||
throw new Error('$AGENT_BUILDDIRECTORY not set');
|
||||
}
|
||||
const appName = product.nameLong + '.app';
|
||||
const x64AppPath = path.join(buildDir, 'vscode-x64', appName);
|
||||
const arm64AppPath = path.join(buildDir, 'vscode-arm64', appName);
|
||||
const x64AsarPath = path.join(x64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
|
||||
const arm64AsarPath = path.join(arm64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
|
||||
const outAppPath = path.join(buildDir, `VSCode-darwin-${arch}`, appName);
|
||||
const productJsonPath = path.resolve(outAppPath, 'Contents', 'Resources', 'app', 'product.json');
|
||||
const infoPlistPath = path.resolve(outAppPath, 'Contents', 'Info.plist');
|
||||
await vscode_universal_1.makeUniversalApp({
|
||||
x64AppPath,
|
||||
arm64AppPath,
|
||||
x64AsarPath,
|
||||
arm64AsarPath,
|
||||
filesToSkip: [
|
||||
'product.json',
|
||||
'Credits.rtf',
|
||||
'CodeResources',
|
||||
'fsevents.node',
|
||||
'.npmrc'
|
||||
],
|
||||
outAppPath,
|
||||
force: true
|
||||
});
|
||||
let productJson = await fs.readJson(productJsonPath);
|
||||
Object.assign(productJson, {
|
||||
darwinUniversalAssetId: 'darwin-universal'
|
||||
});
|
||||
await fs.writeJson(productJsonPath, productJson);
|
||||
let infoPlistString = await fs.readFile(infoPlistPath, 'utf8');
|
||||
let infoPlistJson = plist.parse(infoPlistString);
|
||||
Object.assign(infoPlistJson, {
|
||||
LSRequiresNativeExecution: true
|
||||
});
|
||||
await fs.writeFile(infoPlistPath, plist.build(infoPlistJson), 'utf8');
|
||||
}
|
||||
if (require.main === module) {
|
||||
main().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import { makeUniversalApp } from 'vscode-universal';
|
||||
import * as fs from 'fs-extra';
|
||||
import * as path from 'path';
|
||||
import * as plist from 'plist';
|
||||
import * as product from '../../product.json';
|
||||
|
||||
async function main() {
|
||||
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
|
||||
const arch = process.env['VSCODE_ARCH'];
|
||||
|
||||
if (!buildDir) {
|
||||
throw new Error('$AGENT_BUILDDIRECTORY not set');
|
||||
}
|
||||
|
||||
const appName = product.nameLong + '.app';
|
||||
const x64AppPath = path.join(buildDir, 'vscode-x64', appName);
|
||||
const arm64AppPath = path.join(buildDir, 'vscode-arm64', appName);
|
||||
const x64AsarPath = path.join(x64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
|
||||
const arm64AsarPath = path.join(arm64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar');
|
||||
const outAppPath = path.join(buildDir, `VSCode-darwin-${arch}`, appName);
|
||||
const productJsonPath = path.resolve(outAppPath, 'Contents', 'Resources', 'app', 'product.json');
|
||||
const infoPlistPath = path.resolve(outAppPath, 'Contents', 'Info.plist');
|
||||
|
||||
await makeUniversalApp({
|
||||
x64AppPath,
|
||||
arm64AppPath,
|
||||
x64AsarPath,
|
||||
arm64AsarPath,
|
||||
filesToSkip: [
|
||||
'product.json',
|
||||
'Credits.rtf',
|
||||
'CodeResources',
|
||||
'fsevents.node',
|
||||
'.npmrc'
|
||||
],
|
||||
outAppPath,
|
||||
force: true
|
||||
});
|
||||
|
||||
let productJson = await fs.readJson(productJsonPath);
|
||||
Object.assign(productJson, {
|
||||
darwinUniversalAssetId: 'darwin-universal'
|
||||
});
|
||||
await fs.writeJson(productJsonPath, productJson);
|
||||
|
||||
let infoPlistString = await fs.readFile(infoPlistPath, 'utf8');
|
||||
let infoPlistJson = plist.parse(infoPlistString);
|
||||
Object.assign(infoPlistJson, {
|
||||
LSRequiresNativeExecution: true
|
||||
});
|
||||
await fs.writeFile(infoPlistPath, plist.build(infoPlistJson), 'utf8');
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const codesign = require("electron-osx-sign");
|
||||
const path = require("path");
|
||||
const util = require("../lib/util");
|
||||
const product = require("../../product.json");
|
||||
async function main() {
|
||||
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
|
||||
const tempDir = process.env['AGENT_TEMPDIRECTORY'];
|
||||
const arch = process.env['VSCODE_ARCH'];
|
||||
if (!buildDir) {
|
||||
throw new Error('$AGENT_BUILDDIRECTORY not set');
|
||||
}
|
||||
if (!tempDir) {
|
||||
throw new Error('$AGENT_TEMPDIRECTORY not set');
|
||||
}
|
||||
const baseDir = path.dirname(__dirname);
|
||||
const appRoot = path.join(buildDir, `VSCode-darwin-${arch}`);
|
||||
const appName = product.nameLong + '.app';
|
||||
const appFrameworkPath = path.join(appRoot, appName, 'Contents', 'Frameworks');
|
||||
const helperAppBaseName = product.nameShort;
|
||||
const gpuHelperAppName = helperAppBaseName + ' Helper (GPU).app';
|
||||
const rendererHelperAppName = helperAppBaseName + ' Helper (Renderer).app';
|
||||
const defaultOpts = {
|
||||
app: path.join(appRoot, appName),
|
||||
platform: 'darwin',
|
||||
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
|
||||
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'app-entitlements.plist'),
|
||||
hardenedRuntime: true,
|
||||
'pre-auto-entitlements': false,
|
||||
'pre-embed-provisioning-profile': false,
|
||||
keychain: path.join(tempDir, 'buildagent.keychain'),
|
||||
version: util.getElectronVersion(),
|
||||
identity: '99FM488X57',
|
||||
'gatekeeper-assess': false
|
||||
};
|
||||
const appOpts = Object.assign(Object.assign({}, defaultOpts), {
|
||||
// TODO(deepak1556): Incorrectly declared type in electron-osx-sign
|
||||
ignore: (filePath) => {
|
||||
return filePath.includes(gpuHelperAppName) ||
|
||||
filePath.includes(rendererHelperAppName);
|
||||
} });
|
||||
const gpuHelperOpts = Object.assign(Object.assign({}, defaultOpts), { app: path.join(appFrameworkPath, gpuHelperAppName), entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'), 'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist') });
|
||||
const rendererHelperOpts = Object.assign(Object.assign({}, defaultOpts), { app: path.join(appFrameworkPath, rendererHelperAppName), entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist'), 'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-renderer-entitlements.plist') });
|
||||
await codesign.signAsync(gpuHelperOpts);
|
||||
await codesign.signAsync(rendererHelperOpts);
|
||||
await codesign.signAsync(appOpts);
|
||||
}
|
||||
if (require.main === module) {
|
||||
main().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
|
@ -29,7 +29,6 @@ async function main(): Promise<void> {
|
|||
const appFrameworkPath = path.join(appRoot, appName, 'Contents', 'Frameworks');
|
||||
const helperAppBaseName = product.nameShort;
|
||||
const gpuHelperAppName = helperAppBaseName + ' Helper (GPU).app';
|
||||
const pluginHelperAppName = helperAppBaseName + ' Helper (Plugin).app';
|
||||
const rendererHelperAppName = helperAppBaseName + ' Helper (Renderer).app';
|
||||
|
||||
const defaultOpts: codesign.SignOptions = {
|
||||
|
@ -51,7 +50,6 @@ async function main(): Promise<void> {
|
|||
// TODO(deepak1556): Incorrectly declared type in electron-osx-sign
|
||||
ignore: (filePath: string) => {
|
||||
return filePath.includes(gpuHelperAppName) ||
|
||||
filePath.includes(pluginHelperAppName) ||
|
||||
filePath.includes(rendererHelperAppName);
|
||||
}
|
||||
};
|
||||
|
@ -63,13 +61,6 @@ async function main(): Promise<void> {
|
|||
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-gpu-entitlements.plist'),
|
||||
};
|
||||
|
||||
const pluginHelperOpts: codesign.SignOptions = {
|
||||
...defaultOpts,
|
||||
app: path.join(appFrameworkPath, pluginHelperAppName),
|
||||
entitlements: path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'),
|
||||
'entitlements-inherit': path.join(baseDir, 'azure-pipelines', 'darwin', 'helper-plugin-entitlements.plist'),
|
||||
};
|
||||
|
||||
const rendererHelperOpts: codesign.SignOptions = {
|
||||
...defaultOpts,
|
||||
app: path.join(appFrameworkPath, rendererHelperAppName),
|
||||
|
@ -78,7 +69,6 @@ async function main(): Promise<void> {
|
|||
};
|
||||
|
||||
await codesign.signAsync(gpuHelperOpts);
|
||||
await codesign.signAsync(pluginHelperOpts);
|
||||
await codesign.signAsync(rendererHelperOpts);
|
||||
await codesign.signAsync(appOpts as any);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
const es = require('event-stream');
|
||||
const vfs = require('vinyl-fs');
|
||||
const { jsHygieneFilter, tsHygieneFilter } = require('./filters');
|
||||
|
||||
function eslint() {
|
||||
const gulpeslint = require('gulp-eslint');
|
||||
return vfs
|
||||
.src([...jsHygieneFilter, ...tsHygieneFilter], { base: '.', follow: true, allowEmpty: true })
|
||||
.pipe(
|
||||
gulpeslint({
|
||||
configFile: '.eslintrc.json',
|
||||
rulePaths: ['./build/lib/eslint'],
|
||||
})
|
||||
)
|
||||
.pipe(gulpeslint.formatEach('compact'))
|
||||
.pipe(
|
||||
gulpeslint.results((results) => {
|
||||
if (results.warningCount > 0 || results.errorCount > 0) {
|
||||
throw new Error('eslint failed with warnings and/or errors');
|
||||
}
|
||||
})
|
||||
).pipe(es.through(function () { /* noop, important for the stream to end */ }));
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
eslint().on('error', (err) => {
|
||||
console.error();
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
|
@ -0,0 +1,207 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
const fs = require('fs').promises;
|
||||
const path = require('path');
|
||||
const cp = require('child_process');
|
||||
const os = require('os');
|
||||
const mkdirp = require('mkdirp');
|
||||
const product = require('../product.json');
|
||||
const root = path.resolve(path.join(__dirname, '..', '..'));
|
||||
const exists = (path) => fs.stat(path).then(() => true, () => false);
|
||||
|
||||
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
|
||||
|
||||
async function readControlFile() {
|
||||
try {
|
||||
return JSON.parse(await fs.readFile(controlFilePath, 'utf8'));
|
||||
} catch (err) {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
async function writeControlFile(control) {
|
||||
await mkdirp(path.dirname(controlFilePath));
|
||||
await fs.writeFile(controlFilePath, JSON.stringify(control, null, ' '));
|
||||
}
|
||||
|
||||
async function exec(cmd, args, opts = {}) {
|
||||
return new Promise((c, e) => {
|
||||
const child = cp.spawn(cmd, args, { stdio: 'inherit', env: process.env, ...opts });
|
||||
child.on('close', code => code === 0 ? c() : e(`Returned ${code}`));
|
||||
});
|
||||
}
|
||||
|
||||
function getFolderPath(extDesc) {
|
||||
const folder = extDesc.repo.replace(/.*\//, '');
|
||||
return folderPath = path.join(root, folder);
|
||||
}
|
||||
|
||||
async function getExtensionType(folderPath) {
|
||||
const pkg = JSON.parse(await fs.readFile(path.join(folderPath, 'package.json'), 'utf8'));
|
||||
|
||||
if (pkg['contributes']['themes'] || pkg['contributes']['iconThemes']) {
|
||||
return 'theme';
|
||||
} else if (pkg['contributes']['grammars']) {
|
||||
return 'grammar';
|
||||
} else {
|
||||
return 'misc';
|
||||
}
|
||||
}
|
||||
|
||||
async function initExtension(extDesc) {
|
||||
const folderPath = getFolderPath(extDesc);
|
||||
|
||||
if (!await exists(folderPath)) {
|
||||
console.log(`⏳ git clone: ${extDesc.name}`);
|
||||
await exec('git', ['clone', `${extDesc.repo}.git`], { cwd: root });
|
||||
}
|
||||
|
||||
const type = await getExtensionType(folderPath);
|
||||
return { path: folderPath, type, ...extDesc };
|
||||
}
|
||||
|
||||
async function createWorkspace(type, extensions) {
|
||||
const workspaceName = `vscode-${type}-extensions.code-workspace`;
|
||||
const workspacePath = path.join(root, workspaceName);
|
||||
const workspace = { folders: extensions.map(ext => ({ path: path.basename(ext.path) })) };
|
||||
|
||||
if (!await exists(workspacePath)) {
|
||||
console.log(`✅ create workspace: ${workspaceName}`);
|
||||
}
|
||||
|
||||
await fs.writeFile(workspacePath, JSON.stringify(workspace, undefined, ' '));
|
||||
}
|
||||
|
||||
async function init() {
|
||||
const extensions = [];
|
||||
|
||||
for (const extDesc of product.builtInExtensions) {
|
||||
extensions.push(await initExtension(extDesc));
|
||||
}
|
||||
|
||||
await createWorkspace('all', extensions);
|
||||
|
||||
const byType = extensions
|
||||
.reduce((m, e) => m.set(e.type, [...(m.get(e.type) || []), e]), new Map());
|
||||
|
||||
for (const [type, extensions] of byType) {
|
||||
await createWorkspace(type, extensions);
|
||||
}
|
||||
|
||||
return byType;
|
||||
}
|
||||
|
||||
async function status() {
|
||||
const byType = await init();
|
||||
const control = await readControlFile();
|
||||
|
||||
for (const [type, extensions] of byType) {
|
||||
console.log(`${type} (${extensions.length} extensions):`);
|
||||
|
||||
const maxWidth = Math.max(...extensions.map(e => e.name.length));
|
||||
for (const ext of extensions) {
|
||||
console.log(` ${ext.name.padEnd(maxWidth, ' ')} ➡ ${control[ext.name]}`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`total: ${product.builtInExtensions.length} extensions`);
|
||||
}
|
||||
|
||||
async function each([cmd, ...args], opts) {
|
||||
await init();
|
||||
|
||||
for (const extDesc of product.builtInExtensions) {
|
||||
const folderPath = getFolderPath(extDesc);
|
||||
|
||||
if (opts.type) {
|
||||
const type = await getExtensionType(folderPath);
|
||||
|
||||
if (type !== opts.type) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`👉 ${extDesc.name}`);
|
||||
await exec(cmd, args, { cwd: folderPath });
|
||||
}
|
||||
}
|
||||
|
||||
async function _link(extensions, opts, fn) {
|
||||
await init();
|
||||
|
||||
const control = await readControlFile();
|
||||
|
||||
for (const extDesc of product.builtInExtensions) {
|
||||
if (extensions.length > 0 && extensions.indexOf(extDesc.name) === -1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (opts.type) {
|
||||
const folderPath = getFolderPath(extDesc);
|
||||
const type = await getExtensionType(folderPath);
|
||||
|
||||
if (type !== opts.type) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
await fn(control, extDesc);
|
||||
}
|
||||
|
||||
await writeControlFile(control);
|
||||
}
|
||||
|
||||
async function link(extensions, opts) {
|
||||
await _link(extensions, opts, async (control, extDesc) => {
|
||||
const ext = await initExtension(extDesc);
|
||||
control[extDesc.name] = ext.path;
|
||||
console.log(`👉 link: ${extDesc.name} ➡ ${ext.path}`);
|
||||
});
|
||||
}
|
||||
|
||||
async function unlink(extensions, opts) {
|
||||
await _link(extensions, opts, async (control, extDesc) => {
|
||||
control[extDesc.name] = 'marketplace';
|
||||
console.log(`👉 unlink: ${extDesc.name}`);
|
||||
});
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
const { program } = require('commander');
|
||||
|
||||
program.version('0.0.1');
|
||||
|
||||
program
|
||||
.command('init')
|
||||
.description('Initialize workspace with built-in extensions')
|
||||
.action(init);
|
||||
|
||||
program
|
||||
.command('status')
|
||||
.description('Print extension status')
|
||||
.action(status);
|
||||
|
||||
program
|
||||
.command('each <command...>')
|
||||
.option('-t, --type <type>', 'Specific type only')
|
||||
.description('Run a command in each extension repository')
|
||||
.allowUnknownOption()
|
||||
.action(each);
|
||||
|
||||
program
|
||||
.command('link [extensions...]')
|
||||
.option('-t, --type <type>', 'Specific type only')
|
||||
.description('Link with code-oss')
|
||||
.action(link);
|
||||
|
||||
program
|
||||
.command('unlink [extensions...]')
|
||||
.option('-t, --type <type>', 'Specific type only')
|
||||
.description('Unlink from code-oss')
|
||||
.action(unlink);
|
||||
|
||||
program.parseAsync(process.argv);
|
||||
}
|
|
@ -0,0 +1,151 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Hygiene works by creating cascading subsets of all our files and
|
||||
* passing them through a sequence of checks. Here are the current subsets,
|
||||
* named according to the checks performed on them. Each subset contains
|
||||
* the following one, as described in mathematical notation:
|
||||
*
|
||||
* all ⊃ eol ⊇ indentation ⊃ copyright ⊃ typescript
|
||||
*/
|
||||
|
||||
module.exports.all = [
|
||||
'*',
|
||||
'build/**/*',
|
||||
'extensions/**/*',
|
||||
'scripts/**/*',
|
||||
'src/**/*',
|
||||
'test/**/*',
|
||||
'!out*/**',
|
||||
'!test/**/out/**',
|
||||
'!**/node_modules/**',
|
||||
];
|
||||
|
||||
module.exports.indentationFilter = [
|
||||
'**',
|
||||
|
||||
// except specific files
|
||||
'!**/ThirdPartyNotices.txt',
|
||||
'!**/LICENSE.{txt,rtf}',
|
||||
'!LICENSES.chromium.html',
|
||||
'!**/LICENSE',
|
||||
'!src/vs/nls.js',
|
||||
'!src/vs/nls.build.js',
|
||||
'!src/vs/css.js',
|
||||
'!src/vs/css.build.js',
|
||||
'!src/vs/loader.js',
|
||||
'!src/vs/base/common/insane/insane.js',
|
||||
'!src/vs/base/common/marked/marked.js',
|
||||
'!src/vs/base/common/semver/semver.js',
|
||||
'!src/vs/base/node/terminateProcess.sh',
|
||||
'!src/vs/base/node/cpuUsage.sh',
|
||||
'!test/unit/assert.js',
|
||||
'!resources/linux/snap/electron-launch',
|
||||
|
||||
// except specific folders
|
||||
'!test/automation/out/**',
|
||||
'!test/monaco/out/**',
|
||||
'!test/smoke/out/**',
|
||||
'!extensions/typescript-language-features/test-workspace/**',
|
||||
'!extensions/vscode-api-tests/testWorkspace/**',
|
||||
'!extensions/vscode-api-tests/testWorkspace2/**',
|
||||
'!build/monaco/**',
|
||||
'!build/win32/**',
|
||||
|
||||
// except multiple specific files
|
||||
'!**/package.json',
|
||||
'!**/yarn.lock',
|
||||
'!**/yarn-error.log',
|
||||
|
||||
// except multiple specific folders
|
||||
'!**/codicon/**',
|
||||
'!**/fixtures/**',
|
||||
'!**/lib/**',
|
||||
'!extensions/**/dist/**',
|
||||
'!extensions/**/out/**',
|
||||
'!extensions/**/snippets/**',
|
||||
'!extensions/**/syntaxes/**',
|
||||
'!extensions/**/themes/**',
|
||||
'!extensions/**/colorize-fixtures/**',
|
||||
|
||||
// except specific file types
|
||||
'!src/vs/*/**/*.d.ts',
|
||||
'!src/typings/**/*.d.ts',
|
||||
'!extensions/**/*.d.ts',
|
||||
'!**/*.{svg,exe,png,bmp,jpg,scpt,bat,cmd,cur,ttf,woff,eot,md,ps1,template,yaml,yml,d.ts.recipe,ico,icns,plist}',
|
||||
'!build/{lib,download,darwin}/**/*.js',
|
||||
'!build/**/*.sh',
|
||||
'!build/azure-pipelines/**/*.js',
|
||||
'!build/azure-pipelines/**/*.config',
|
||||
'!**/Dockerfile',
|
||||
'!**/Dockerfile.*',
|
||||
'!**/*.Dockerfile',
|
||||
'!**/*.dockerfile',
|
||||
'!extensions/markdown-language-features/media/*.js',
|
||||
'!extensions/simple-browser/media/*.js',
|
||||
];
|
||||
|
||||
module.exports.copyrightFilter = [
|
||||
'**',
|
||||
'!**/*.desktop',
|
||||
'!**/*.json',
|
||||
'!**/*.html',
|
||||
'!**/*.template',
|
||||
'!**/*.md',
|
||||
'!**/*.bat',
|
||||
'!**/*.cmd',
|
||||
'!**/*.ico',
|
||||
'!**/*.icns',
|
||||
'!**/*.xml',
|
||||
'!**/*.sh',
|
||||
'!**/*.txt',
|
||||
'!**/*.xpm',
|
||||
'!**/*.opts',
|
||||
'!**/*.disabled',
|
||||
'!**/*.code-workspace',
|
||||
'!**/*.js.map',
|
||||
'!build/**/*.init',
|
||||
'!resources/linux/snap/snapcraft.yaml',
|
||||
'!resources/win32/bin/code.js',
|
||||
'!resources/web/code-web.js',
|
||||
'!resources/completions/**',
|
||||
'!extensions/configuration-editing/build/inline-allOf.ts',
|
||||
'!extensions/markdown-language-features/media/highlight.css',
|
||||
'!extensions/html-language-features/server/src/modes/typescript/*',
|
||||
'!extensions/*/server/bin/*',
|
||||
'!src/vs/editor/test/node/classification/typescript-test.ts',
|
||||
];
|
||||
|
||||
module.exports.jsHygieneFilter = [
|
||||
'src/**/*.js',
|
||||
'build/gulpfile.*.js',
|
||||
'!src/vs/loader.js',
|
||||
'!src/vs/css.js',
|
||||
'!src/vs/nls.js',
|
||||
'!src/vs/css.build.js',
|
||||
'!src/vs/nls.build.js',
|
||||
'!src/**/insane.js',
|
||||
'!src/**/marked.js',
|
||||
'!src/**/semver.js',
|
||||
'!**/test/**',
|
||||
];
|
||||
|
||||
module.exports.tsHygieneFilter = [
|
||||
'src/**/*.ts',
|
||||
'test/**/*.ts',
|
||||
'extensions/**/*.ts',
|
||||
'!src/vs/*/**/*.d.ts',
|
||||
'!src/typings/**/*.d.ts',
|
||||
'!extensions/**/*.d.ts',
|
||||
'!**/fixtures/**',
|
||||
'!**/typings/**',
|
||||
'!**/node_modules/**',
|
||||
'!extensions/**/colorize-fixtures/**',
|
||||
'!extensions/vscode-api-tests/testWorkspace/**',
|
||||
'!extensions/vscode-api-tests/testWorkspace2/**',
|
||||
'!extensions/**/*.test.ts',
|
||||
'!extensions/html-language-features/server/lib/jquery.d.ts',
|
||||
];
|
|
@ -11,6 +11,11 @@ const task = require('./lib/task');
|
|||
const compilation = require('./lib/compilation');
|
||||
|
||||
// Full compile, including nls and inline sources in sourcemaps, for build
|
||||
const compileBuildTask = task.define('compile-build', task.series(util.rimraf('out-build'), compilation.compileTask('src', 'out-build', true)));
|
||||
const compileBuildTask = task.define('compile-build',
|
||||
task.series(
|
||||
util.rimraf('out-build'),
|
||||
compilation.compileTask('src', 'out-build', true)
|
||||
)
|
||||
);
|
||||
gulp.task(compileBuildTask);
|
||||
exports.compileBuildTask = compileBuildTask;
|
||||
exports.compileBuildTask = compileBuildTask;
|
||||
|
|
|
@ -16,8 +16,6 @@ const cp = require('child_process');
|
|||
const compilation = require('./lib/compilation');
|
||||
const monacoapi = require('./lib/monaco-api');
|
||||
const fs = require('fs');
|
||||
const webpack = require('webpack');
|
||||
const webpackGulp = require('webpack-stream');
|
||||
|
||||
let root = path.dirname(__dirname);
|
||||
let sha1 = util.getVersion(root);
|
||||
|
@ -369,6 +367,9 @@ gulp.task('editor-distro',
|
|||
);
|
||||
|
||||
const bundleEditorESMTask = task.define('editor-esm-bundle-webpack', () => {
|
||||
const webpack = require('webpack');
|
||||
const webpackGulp = require('webpack-stream');
|
||||
|
||||
const result = es.through();
|
||||
|
||||
const webpackConfigPath = path.join(root, 'build/monaco/monaco.webpack.config.js');
|
||||
|
|
|
@ -9,17 +9,13 @@ require('events').EventEmitter.defaultMaxListeners = 100;
|
|||
const gulp = require('gulp');
|
||||
const path = require('path');
|
||||
const nodeUtil = require('util');
|
||||
const tsb = require('gulp-tsb');
|
||||
const es = require('event-stream');
|
||||
const filter = require('gulp-filter');
|
||||
const webpack = require('webpack');
|
||||
const util = require('./lib/util');
|
||||
const task = require('./lib/task');
|
||||
const watcher = require('./lib/watch');
|
||||
const createReporter = require('./lib/reporter').createReporter;
|
||||
const glob = require('glob');
|
||||
const sourcemaps = require('gulp-sourcemaps');
|
||||
const nlsDev = require('vscode-nls-dev');
|
||||
const root = path.dirname(__dirname);
|
||||
const commit = util.getVersion(root);
|
||||
const plumber = require('gulp-plumber');
|
||||
|
@ -29,10 +25,49 @@ const ext = require('./lib/extensions');
|
|||
|
||||
const extensionsPath = path.join(path.dirname(__dirname), 'extensions');
|
||||
|
||||
const compilations = glob.sync('**/tsconfig.json', {
|
||||
cwd: extensionsPath,
|
||||
ignore: ['**/out/**', '**/node_modules/**']
|
||||
});
|
||||
// To save 250ms for each gulp startup, we are caching the result here
|
||||
// const compilations = glob.sync('**/tsconfig.json', {
|
||||
// cwd: extensionsPath,
|
||||
// ignore: ['**/out/**', '**/node_modules/**']
|
||||
// });
|
||||
const compilations = [
|
||||
'configuration-editing/build/tsconfig.json',
|
||||
'configuration-editing/tsconfig.json',
|
||||
'css-language-features/client/tsconfig.json',
|
||||
'css-language-features/server/tsconfig.json',
|
||||
'debug-auto-launch/tsconfig.json',
|
||||
'debug-server-ready/tsconfig.json',
|
||||
'emmet/tsconfig.json',
|
||||
'extension-editing/tsconfig.json',
|
||||
'git-ui/tsconfig.json',
|
||||
'git/tsconfig.json',
|
||||
'github-authentication/tsconfig.json',
|
||||
'github/tsconfig.json',
|
||||
'grunt/tsconfig.json',
|
||||
'gulp/tsconfig.json',
|
||||
'html-language-features/client/tsconfig.json',
|
||||
'html-language-features/server/tsconfig.json',
|
||||
'image-preview/tsconfig.json',
|
||||
'jake/tsconfig.json',
|
||||
'json-language-features/client/tsconfig.json',
|
||||
'json-language-features/server/tsconfig.json',
|
||||
'markdown-language-features/preview-src/tsconfig.json',
|
||||
'markdown-language-features/tsconfig.json',
|
||||
'merge-conflict/tsconfig.json',
|
||||
'microsoft-authentication/tsconfig.json',
|
||||
'npm/tsconfig.json',
|
||||
'php-language-features/tsconfig.json',
|
||||
'search-result/tsconfig.json',
|
||||
'simple-browser/tsconfig.json',
|
||||
'testing-editor-contributions/tsconfig.json',
|
||||
'typescript-language-features/test-workspace/tsconfig.json',
|
||||
'typescript-language-features/tsconfig.json',
|
||||
'vscode-api-tests/tsconfig.json',
|
||||
'vscode-colorize-tests/tsconfig.json',
|
||||
'vscode-custom-editor-tests/tsconfig.json',
|
||||
'vscode-notebook-tests/tsconfig.json',
|
||||
'vscode-test-resolver/tsconfig.json'
|
||||
];
|
||||
|
||||
const getBaseUrl = out => `https://ticino.blob.core.windows.net/sourcemaps/${commit}/${out}`;
|
||||
|
||||
|
@ -64,6 +99,10 @@ const tasks = compilations.map(function (tsconfigFile) {
|
|||
}
|
||||
|
||||
function createPipeline(build, emitError) {
|
||||
const nlsDev = require('vscode-nls-dev');
|
||||
const tsb = require('gulp-tsb');
|
||||
const sourcemaps = require('gulp-sourcemaps');
|
||||
|
||||
const reporter = createReporter('extensions');
|
||||
|
||||
overrideOptions.inlineSources = Boolean(build);
|
||||
|
@ -170,6 +209,8 @@ const compileExtensionsBuildTask = task.define('compile-extensions-build', task.
|
|||
));
|
||||
|
||||
gulp.task(compileExtensionsBuildTask);
|
||||
gulp.task(task.define('extensions-ci', task.series(compileExtensionsBuildTask)));
|
||||
|
||||
exports.compileExtensionsBuildTask = compileExtensionsBuildTask;
|
||||
|
||||
const compileWebExtensionsTask = task.define('compile-web', () => buildWebExtensions(false));
|
||||
|
@ -181,6 +222,7 @@ gulp.task(watchWebExtensionsTask);
|
|||
exports.watchWebExtensionsTask = watchWebExtensionsTask;
|
||||
|
||||
async function buildWebExtensions(isWatch) {
|
||||
const webpack = require('webpack');
|
||||
|
||||
const webpackConfigLocations = await nodeUtil.promisify(glob)(
|
||||
path.join(extensionsPath, '**', 'extension-browser.webpack.config.js'),
|
||||
|
|
|
@ -4,52 +4,33 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
const gulp = require('gulp');
|
||||
const filter = require('gulp-filter');
|
||||
const es = require('event-stream');
|
||||
const gulpeslint = require('gulp-eslint');
|
||||
const vfs = require('vinyl-fs');
|
||||
const path = require('path');
|
||||
const task = require('./lib/task');
|
||||
const { all, jsHygieneFilter, tsHygieneFilter, hygiene } = require('./hygiene');
|
||||
|
||||
gulp.task('eslint', () => {
|
||||
return vfs
|
||||
.src(all, { base: '.', follow: true, allowEmpty: true })
|
||||
.pipe(filter(jsHygieneFilter.concat(tsHygieneFilter)))
|
||||
.pipe(
|
||||
gulpeslint({
|
||||
configFile: '.eslintrc.json',
|
||||
rulePaths: ['./build/lib/eslint'],
|
||||
})
|
||||
)
|
||||
.pipe(gulpeslint.formatEach('compact'))
|
||||
.pipe(
|
||||
gulpeslint.results((results) => {
|
||||
if (results.warningCount > 0 || results.errorCount > 0) {
|
||||
throw new Error('eslint failed with warnings and/or errors');
|
||||
}
|
||||
})
|
||||
);
|
||||
});
|
||||
const { hygiene } = require('./hygiene');
|
||||
|
||||
function checkPackageJSON(actualPath) {
|
||||
const actual = require(path.join(__dirname, '..', actualPath));
|
||||
const rootPackageJSON = require('../package.json');
|
||||
const checkIncluded = (set1, set2) => {
|
||||
for (let depName in set1) {
|
||||
const depVersion = set1[depName];
|
||||
const rootDepVersion = set2[depName];
|
||||
if (!rootDepVersion) {
|
||||
// missing in root is allowed
|
||||
continue;
|
||||
}
|
||||
if (depVersion !== rootDepVersion) {
|
||||
this.emit(
|
||||
'error',
|
||||
`The dependency ${depName} in '${actualPath}' (${depVersion}) is different than in the root package.json (${rootDepVersion})`
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
for (let depName in actual.dependencies) {
|
||||
const depVersion = actual.dependencies[depName];
|
||||
const rootDepVersion = rootPackageJSON.dependencies[depName];
|
||||
if (!rootDepVersion) {
|
||||
// missing in root is allowed
|
||||
continue;
|
||||
}
|
||||
if (depVersion !== rootDepVersion) {
|
||||
this.emit(
|
||||
'error',
|
||||
`The dependency ${depName} in '${actualPath}' (${depVersion}) is different than in the root package.json (${rootDepVersion})`
|
||||
);
|
||||
}
|
||||
}
|
||||
checkIncluded(actual.dependencies, rootPackageJSON.dependencies);
|
||||
checkIncluded(actual.devDependencies, rootPackageJSON.devDependencies);
|
||||
}
|
||||
|
||||
const checkPackageJSONTask = task.define('check-package-json', () => {
|
||||
|
@ -57,12 +38,11 @@ const checkPackageJSONTask = task.define('check-package-json', () => {
|
|||
es.through(function () {
|
||||
checkPackageJSON.call(this, 'remote/package.json');
|
||||
checkPackageJSON.call(this, 'remote/web/package.json');
|
||||
checkPackageJSON.call(this, 'build/package.json');
|
||||
})
|
||||
);
|
||||
});
|
||||
gulp.task(checkPackageJSONTask);
|
||||
|
||||
gulp.task(
|
||||
'hygiene',
|
||||
task.series(checkPackageJSONTask, () => hygiene())
|
||||
);
|
||||
const hygieneTask = task.define('hygiene', task.series(checkPackageJSONTask, () => hygiene(undefined, false)));
|
||||
gulp.task(hygieneTask);
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
// Increase max listeners for event emitters
|
||||
require('events').EventEmitter.defaultMaxListeners = 100;
|
||||
|
||||
const gulp = require('gulp');
|
||||
const util = require('./lib/util');
|
||||
const task = require('./lib/task');
|
||||
const compilation = require('./lib/compilation');
|
||||
const { monacoTypecheckTask/* , monacoTypecheckWatchTask */ } = require('./gulpfile.editor');
|
||||
const { compileExtensionsTask, watchExtensionsTask } = require('./gulpfile.extensions');
|
||||
|
||||
// Fast compile for development time
|
||||
const compileClientTask = task.define('compile-client', task.series(util.rimraf('out'), compilation.compileTask('src', 'out', false)));
|
||||
gulp.task(compileClientTask);
|
||||
|
||||
const watchClientTask = task.define('watch-client', task.series(util.rimraf('out'), compilation.watchTask('out', false)));
|
||||
gulp.task(watchClientTask);
|
||||
|
||||
// All
|
||||
const compileTask = task.define('compile', task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask));
|
||||
gulp.task(compileTask);
|
||||
|
||||
gulp.task(task.define('watch', task.parallel(/* monacoTypecheckWatchTask, */ watchClientTask, watchExtensionsTask)));
|
||||
|
||||
// Default
|
||||
gulp.task('default', compileTask);
|
||||
|
||||
process.on('unhandledRejection', (reason, p) => {
|
||||
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
// Load all the gulpfiles only if running tasks other than the editor tasks
|
||||
require('glob').sync('gulpfile.*.js', { cwd: __dirname })
|
||||
.forEach(f => require(`./${f}`));
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue