Commit Graph

18 Commits

Author SHA1 Message Date
João Moreno
d2f1f7ce97 Inline Compile & CompileCLI stages into platform specific jobs (#296006)
* chore: ralph loop checkpoint - 2026-02-17 12:48

* fix shell script

* Inline compile stage into platform jobs

Remove the standalone Compile stage from the ADO pipeline. Each
platform job (Windows, Linux, macOS, Alpine, Web) now compiles
TypeScript itself instead of downloading a shared Compilation artifact.

- Add VSCODE_RUN_CHECKS parameter to Linux jobs for hygiene/lint/CG
- Add VSCODE_RUN_COMPILE_EXTRAS parameter to macOS jobs for telemetry
  extraction and sourcemap upload
- Remove VSCODE_COMPILE_ONLY parameter entirely
- Delete product-compile.yml (no longer referenced)

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

* Always run telemetry extraction on macOS builds

The macOS Universal app merge requires both x64 and arm64 builds to have
identical file sets. Telemetry extraction was only running on arm64 (via
VSCODE_RUN_COMPILE_EXTRAS), causing the universal merge to fail due to
missing telemetry-core.json and telemetry-extensions.json in the x64 build.

Move telemetry extraction outside the VSCODE_RUN_COMPILE_EXTRAS gate so
it runs on all macOS builds. Sourcemap upload remains gated.

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

* Run telemetry extraction on all client builds

All client builds (Linux, Windows, macOS) need telemetry-core.json and
telemetry-extensions.json. Previously only macOS arm64 ran extract-telemetry.

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

* Only run telemetry extraction on Linux x64 (client build)

Linux arm64 and armhf are server-only builds, no need for telemetry files.

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

* Remove .ralph scaffolding files

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

* Fix telemetry extraction on Windows with native PowerShell

The bash extract-telemetry.sh script fails on Windows because the Unix
bin shim gets interpreted as Node.js code. Use a native PowerShell
implementation that calls the extractor JS entry point directly.

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

* Handle missing telemetry files gracefully on Windows

The telemetry extractor may skip emitting declarations-resolved.json
when no events are found. Handle this case with a warning instead of
failing the build.

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

* Use deterministic build date from git commit timestamp

When each platform compiles independently, the build date embedded in
cli.js (via INSERT_PRODUCT_CONFIGURATION) differs between machines
because each uses new Date().toISOString(). This causes the macOS
Universal app merge to fail since cli.js SHA differs between x64/arm64.

Fix: use the git commit date (git log -1 --format=%cI HEAD) instead
of the current wall-clock time. This ensures all independent builds
on different machines produce identical timestamps.

Updated in:
- build/lib/date.ts: writeISODate() uses git commit date
- build/next/index.ts: bundle(), transpile, and readISODate fallback
  all use git commit date

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

* Remove redundant extensions-ci task from CI pipelines

core-ci (esbuild path) already includes cleanExtensionsBuildTask,
compileNonNativeExtensionsBuildTask, and compileExtensionMediaBuildTask.
Running extensions-ci in parallel caused a race condition where
core-ci's rimraf of .build/extensions clashed with extensions-ci
writing to the same directory.

Also removes dead code:
- extensions-ci and extensions-ci-pr task definitions (fully subsumed)
- core-ci-old task (useEsbuildTranspile is always true)

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

* remove VSCODE_RUN_COMPILE_EXTRAS

* address PR feedback regarding code duplication of `getGitCommitDate()` function by exporting a single helper function from `build/lib/date.ts` and importing it in `build/next/index.ts` to ensure consistent behavior and improve code maintainability.

* update readISODate function to return git commit date instead of current date

* add telemetry sorting script and integrate into build process for consistent output

* refactor telemetry extraction process: replace shell script with TypeScript implementation

* update skill

* update telemetry-extractor dependency to version 1.19.0

* fix build

* fix more duplicate telemetry definition issues

* cleanup

* refactor: consolidate validation checks into quality checks and remove obsolete tasks

* bust the cache

* undo cache bust

* fix expression

* fix

* fix: update Azure storage account name in quality checks

* fix: initialize stages set with 'Quality'

* fix: add VSCODE_BUILD_TYPE parameter with options for Product and CI builds

* fix: update Azure Pipeline CLI to use parameters instead of variables for queueing builds

* fix: update VSCODE_BUILD_TYPE parameter values for clarity

* fix: update default value for VSCODE_BUILD_TYPE parameter to 'Product'

* leaner

* even leaner

* only npm ci in build

* 💄

* run entire npm ci

* fix

* fix

* fix it

* Inline CompileCLI into platform stages

- Remove centralized CompileCLI stage
- Move CLI jobs into Windows, Linux, macOS stages as independent jobs
- CLI jobs now compile, publish unsigned mid-job, sign, and publish signed
- Platform compile jobs use deemon + waitForArtifacts for async CLI download
- Delete separate CLI sign jobs (now merged into CLI compile jobs)
- Remove CompileCLI from publish.ts stage tracking

* fix: macOS CLI signing - use proper directory structure for ESRP

* fix: add BUILDS_API_URL to Windows and Linux job templates

* fix: label Linux CLI jobs clearly

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: João Moreno <22350+joaomoreno@users.noreply.github.com>
2026-03-01 08:48:08 +01:00
Robo
b3669c244f ci: fix electron download from test steps (#292811)
* ci: fix electron download from test steps

* build: always repackage electron from oss entry scripts
2026-02-04 16:37:20 +01: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
Ladislau Szomoru
dd65f0c5ef Engineering - switch from npm-run-all to npm-run-all2 (#284087)
* Introduce compilation error

* Engineering - limit the tasks that we run

* Limit available memory to simulate an OOM

* Try to update the task

* Remove the use of npm-run-all

* Fix script

* Another try

* Try npm-run-all2

* Restore tasks, keep npm-run-all2

* Switch from npm-run-all to npm-run-all2

* Revert changes that were used for testing
2026-01-05 15:49:42 +01:00
João Moreno
e354fed9eb missing codesign for win32 web bits (#280914) 2025-12-03 10:59:11 +00:00
Robo
4c5bfb172a feat: create versioned resources for windows setup (#263998)
* feat: create versioned resources for windows setup

* chore: use inno_updater to remove old installation

* chore: remove old installation as part of setup

* chore: update explorer-command

* chore: prefer session-end

* chore: uninst delete updating_version

* chore: make session-ending write synchronous

* chore: cleanup updateService.win32.ts

* chore: invoke inno_updater gc path for non background update

* chore: move session-end path to runtime

* chore: use commit for updating_version

* chore: fix invalid string

* chore: set appUpdate path

* chore: update inno_updater

* chore: empty commit for testing

* chore: some cleanups

1) Check for session-ending flag in appx and tunnel callsites
2) Move gc for background update to cleanup phase in updateservice
3) Set update state to ready when there is a running inno_setup

* chore: disallow same version update

* chore: disallow application launch in the middle of update

* chore: empty commit for testing

* chore: bump inno_updater

* chore: empty commit for testing

* chore: move gc to update startup

* chore: move feature behind insider only check

* chore: bump inno_updater

* chore: bump explorer-command

* fix: build

* fix: gc for background update in system setup

* chore: create separate cli entrypoints for build

* fix: check for setup mutex created by inno

* chore: remove problematic updatingVersionPath deletion

* chore: remove redundant update check

* chore: bump inno_updater

* chore: fix build

* chore: bump inno updater
2025-11-24 21:32:12 +09:00
Matt Bierner
f0e7fe3775 Convert a few more build scripts to TypeScript
For #277526
2025-11-21 09:26:54 -08: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
João Moreno
911a41f96e Revert "Insider builds should have an auto increasing version number" (#278356)
Revert "Insider builds should have an auto increasing version number (#277497)"

This reverts commit 222fb55dd5.
2025-11-19 15:08:11 +01:00
João Moreno
222fb55dd5 Insider builds should have an auto increasing version number (#277497)
* wip

* more logs

* add bump-insiders-version.yml

* ok give this a try

* fix paths

* missing parameter

* ok

* fix

* fix CI

* hm

* rm

* fix appx version

* fix inno

* whoops

* update insiders version in compile job as well

* thanks @lszomoru
2025-11-17 17:21:33 +01:00
Paul
d72d6a2424 Generate policy data as JSON (#272368) 2025-10-21 12:48:33 -07:00
Paul
6025703c6a Revert "Generate policy data as JSON" (#272362) 2025-10-20 16:12:10 -07:00
Paul
99c299e880 Generate policy data as JSON (#272018) 2025-10-20 14:38:48 -07:00
Ladislau Szomoru
4b8bd3cb6f Engineering - refactor product pipeline (#269979) 2025-10-06 11:12:40 +02:00
Ladislau Szomoru
7833e078b6 Engineering - remove task that is not needed (#268847) 2025-09-29 12:17:09 +00:00
Ladislau Szomoru
a4838b9ffd Engineering - update rust toolchain (#268270) 2025-09-25 08:07:20 -07:00
Ladislau Szomoru
3dbf54100c Engineering - cleanup Windows CLI jobs (#268267)
* Engineering - move Windows CLI jobs into the template

* Rename files

* Declare output in the template context

* Refactor job template

* Move files around

* Move files around

* Fix path

* Another try

* Revert "Another try"

This reverts commit ac1f1ad2df.

* Some more paths to fix
2025-09-24 22:50:36 -07:00