Commit Graph

29 Commits

Author SHA1 Message Date
Alexandru Dima 3980424ce8 Refactor restore-node-modules action for lookup-only functionality (#322140)
refactor: update restore-node-modules action to support lookup-only functionality

- Replaced 'extract' input with 'lookup-only' to allow cache entry checks without downloading or extracting.
- Updated action logic to conditionally extract node_modules based on the new 'lookup-only' input.
- Adjusted workflow files to utilize 'lookup-only' for cache-warming jobs on Linux, macOS, and Windows.
2026-06-19 19:38:47 +00:00
Alexandru Dima 37e7e85b10 Optimize node_modules caching for CI & PR checks (#322074)
* CI: speed up node_modules cache with zstd + shared scripts

Switch the Linux/macOS node_modules cache from single-threaded gzip
(tar -czf) to multi-threaded zstd. The "Create node_modules archive"
step was spending ~5min of single-core gzip on a multi-GB tree on every
cache miss; zstd -T0 uses all cores and decompresses much faster, so
cache-hit jobs benefit too. Windows stays on 7-Zip (already threaded).

Extract the archive/extract commands into shared per-platform scripts
under .github/workflows/node_modules_cache/ (cache.sh / cache.ps1, each
dispatching on an archive|extract argument) so the format and flags live
in one place instead of being duplicated across ~8 workflows. Bump
build/.cachesalt to invalidate existing gzip caches.

Also remove the obsolete extensions/copilot CI workflows
(copilot-setup-steps.yml, ensure-node-modules-cache.yml, pr.yml) and the
unused build/listBuildCacheFiles.js, and drop their now-stale entries
(plus lit-html and signals-core) from .eslint-allowed-javascript-files.

* ci: seed copilot node_modules cache on main and rename cache keys

Add copilot-linux and copilot-windows jobs to pr-node-modules.yml so the
copilot node_modules cache is populated on main. Rename the copilot cache
keys to copilot-node_modules-linux / copilot-node_modules-windows in pr.yml.

* ci: extract node_modules cache into composite actions

Factor the repeated node_modules cache plumbing into two local composite
actions, restore-node-modules and save-node-modules, and migrate all
workflows that used the cache.sh/cache.ps1 archive flow (pr, pr-node-modules,
pr-{linux,darwin,win32}-test, copilot-setup-steps, component-fixtures,
css-order-scan).

- restore-node-modules computes the key, restores the cache, optionally
  extracts on a hit, and exports the resolved key via $GITHUB_ENV.
- save-node-modules archives node_modules and saves it to the cache, reusing
  the key exported by restore so callers don't repeat the prefix.
- Bespoke install steps stay in the workflows, so per-job env/secrets never
  cross the action boundary.
- Only seed the cache on branch pushes (component-fixtures skips PRs, whose
  caches aren't shared).

* save the node_modules cache for now to test it

* ci: fix node_modules cache save dropping the archive

cache.sh wrote its archive as cache.tzst, but actions/cache reserves that
name for its own tarball and passes --exclude cache.tzst, so our archive was
excluded and an empty (~200 B) cache was saved on Linux/macOS. Rename the
archive to node-modules.tzst and bump build/.cachesalt to invalidate the
broken cache entries.

* empty commit

* Remove again saving to the node modules cache from PR steps
2026-06-19 17:21:43 +02:00
Robo 843588fd83 chore: bump electron 42 header version for msvc compatibility (#318587) 2026-05-28 01:12:00 +00:00
Robo 1897fa3403 ci: fix windows node_modules cache for pr pipeline (#318558) 2026-05-27 15:18:48 +00:00
Michael Lively 7a833e177b ci: switch PR workflows back to 1ES self-hosted runners with JobId (#313128)
* ci: switch PR workflows back to 1ES self-hosted runners with JobId

Re-applies #311975 (reverted in #312033). Adds per-run+attempt JobId
labels to scope 1ES agents to specific GitHub Actions runs and prevent
intermittent runner cancellations.

Also switches the pr.yml compile job's GITHUB_TOKEN from the
ephemeral repo-scoped runner token to secrets.VSCODE_OSS so cross-repo
GitHub API release fetches (vscode-js-debug, vscode-js-debug-companion,
vscode-js-profile-visualizer, etc.) authenticate properly. On 1ES pools
the shared egress IPs hit the anonymous 60/hr api.github.com rate limit
and produced 403 fan-out across PRs last time.

* ci: fall back to GITHUB_TOKEN for fork PRs

Match the historical pattern from before #255987 — fork PRs can't
access secrets.VSCODE_OSS, so use the conditional to pick GITHUB_TOKEN
for forks.
2026-04-29 10:51:12 -07:00
Michael Lively d00e135668 Revert "ci: switch PR workflows back to 1ES self-hosted runners with JobId" (#312033)
Revert "ci: switch PR workflows back to 1ES self-hosted runners with JobId (#…"

This reverts commit 94c4655a2c.
2026-04-22 23:10:55 +00:00
Michael Lively 94c4655a2c ci: switch PR workflows back to 1ES self-hosted runners with JobId (#311975)
* ci: switch PR workflows back to 1ES self-hosted runners with JobId

Reverts the GitHub-hosted runner switch for ubuntu/windows jobs in pr*.yml
and adds a unique JobId label per job, per the IcM mitigation. The JobId
ensures 1ES pool runs are scoped to a specific GitHub Actions run+attempt,
which prevents the cancellation issues that occurred with bare pool labels.

Pool labels:
- 1es-vscode-oss-ubuntu-22.04-x64
- 1es-vscode-oss-windows-2022-x64

macOS jobs (pr-darwin-test.yml, pr-node-modules macOS) remain on
GitHub-hosted runners as no 1ES macOS pool exists.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci: keep pr-linux-test.yml on ubuntu-24.04 GH-hosted runner

Linux electron tests were stabilized by moving to ubuntu-24.04 in #308495
and #309451. Keep that runner GH-hosted while the rest of the PR workflows
use 1ES self-hosted pools.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci: include inputs.job_name in JobId for reusable test workflows

pr-win32-test.yml is invoked 3x from pr.yml (Electron/Browser/Remote) and
without a per-invocation discriminator all 3 jobs share the same JobId
within a run, defeating the 1ES per-job scoping. Add inputs.job_name to
the JobId prefix so each invocation is distinct. Apply the same defense
to pr-linux-cli-test.yml for safety.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-22 12:53:41 -07:00
Michael Lively 08c09ae70d switch to gh hosted runners (#305298) 2026-03-26 20:58:07 +00:00
Raymond Zhao 000e601e5e Revert "engineering: use tar+zstd for win32 node_modules cache" (#291740)
Revert "engineering: use tar+zstd for win32 node_modules cache (#291624)"

This reverts commit 70529729e6.
2026-01-29 21:48:29 +00:00
João Moreno 70529729e6 engineering: use tar+zstd for win32 node_modules cache (#291624)
* engineering: use tar+zstd for win32 node_modules cache

* bump cache

* Update .github/workflows/pr-node-modules.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update build/azure-pipelines/win32/product-build-win32-node-modules.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update build/azure-pipelines/win32/steps/product-build-win32-compile.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/workflows/pr-win32-test.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* bump cache salt

* more fixes

---------

Co-authored-by: Aman Karmani <aman@tmm1.net>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-29 21:16:43 +01:00
dependabot[bot] 843d264a93 Bump actions/cache from 4 to 5 (#283559)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 11:46:42 +00:00
dependabot[bot] ffc052c913 Bump actions/checkout from 5 to 6 (#279152)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com>
2025-11-25 14:29:41 +00:00
Matt Bierner 2648263d3e Run our build scripts directly as typescript (#277567)
* Run our build scripts directly as typescript #277567

Follow up on #276864
For #277526

* Remove a few more ts-node references

* Fix linux and script reference

* Remove `_build-script` ref

* Fix script missing closing quote

* use type only import

* Fix export

* Make sure to run copy-policy-dto

* Make sure we run the copy-policy-dto script

* Enable `verbatimModuleSyntax`

* Pipelines fixes

* Try adding explicit ext to path

* Fix bad edit

* Revert extra `--`

---------

Co-authored-by: João Moreno <joaomoreno@users.noreply.github.com>
2025-11-21 14:56:00 +01:00
dependabot[bot] 7a90c2cf94 Bump actions/setup-node from 5 to 6 (#272258)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 15:14:12 +02:00
dependabot[bot] 62dbaa0e77 Bump actions/setup-node from 4 to 5 (#265655)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Logan Ramos <lramos15@gmail.com>
2025-09-08 17:17:09 +00:00
João Moreno 8d7e69612d revert back to official nodejs mirror (#265692)
maybe the issue is gone by now 🤞:
- https://github.com/microsoft/azure-pipelines-tasks/issues/18280
- https://github.com/nodejs/nodejs.org/issues/4495
2025-09-08 17:14:10 +00:00
dependabot[bot] 5cd72cdafe Bump actions/checkout from 4 to 5 (#263345)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 08:02:07 +00:00
Ladislau Szomoru 8a9f44d3ab Engineering - fix node modules cache action (#262282) 2025-08-19 11:26:23 +02:00
Robo 10575e19aa (partial revert) ci: remove install build dependencies step on linux (#257064) 2025-07-21 11:25:26 +00:00
Robo b37c013d08 ci: remove install build dependencies step on linux (#257050) 2025-07-21 09:38:54 +00:00
Robo 2305e3bbcd ci: fix linux node_modules publish pipeline (#256781)
* ci: fix linux node_modules publish pipeline

* fix: build
2025-07-21 18:09:57 +09:00
Ladislau Szomoru f6545f394c Engineering - fix built-in extension cache population (#255963) 2025-07-15 10:57:33 +02:00
Alexandru Dima c068082c35 Build tweaks (#255857)
* Revert "remove unnecessary build step (#255764)"

This reverts commit 50bf321791.

* Add `enableCrossOsArchive: true`
2025-07-14 20:08:36 +02:00
João Moreno 50bf321791 remove unnecessary build step (#255764) 2025-07-14 16:24:59 +02:00
Ladislau Szomoru d8367188a0 Engineering - use different token for topic branches (#254714)
Engineering - use different token from topic branches
2025-07-08 19:43:08 +00:00
Ladislau Szomoru 716794e638 Engineering - more descriptive cache names (#254496)
Engineering - mode descriptive cache names
2025-07-07 18:23:11 +00:00
Ladislau Szomoru 2380d75ac8 Engineering - add job the maintain the node_modules cache for the Compile stage and builtin extensions cache (#254126)
* Engineering - add job the maintain the node_modules cache for the Compile stage and builtin extensions cache

* Fix typo
2025-07-04 16:17:51 +02:00
Ladislau Szomoru 69005e1002 Engineering - improve node_modules cache action (#254076) 2025-07-04 13:16:38 +02:00
Ladislau Szomoru 74f72e008d Engineering - add GitHub action to maintain node_modules cache (#254069) 2025-07-04 09:27:58 +00:00