Commit Graph

185 Commits

Author SHA1 Message Date
Dmitriy Vasyura
9de7db1a5c Sanity tests improvements (#302917) 2026-03-18 18:42:27 +00:00
João Moreno
ac40642c8e refactor: remove rollout duration for insider builds in release process (#301496) 2026-03-13 13:58:56 +00:00
Dmitriy Vasyura
c95cc7ae08 Fix Guardian errors in sanity tests stage (#298662) 2026-03-02 09:07:48 +00:00
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
Dmitriy Vasyura
a0a6cd83e2 Improve sanity tests stability (#298253) 2026-02-27 16:06:37 +00:00
Dmitriy Vasyura
0f81f59968 Add Sanity Tests stage to product build pipeline (#296668) 2026-02-24 11:29:11 +01:00
Dmitriy Vasyura
ee401a1256 Sanity tests perf improvements (#296248) 2026-02-22 16:55:53 +00:00
Ladislau Szomoru
5f6c0faea4 Engineering - move Alpine CLI jobs into the Alpine stage (#294852)
* Move Alpine jobs

* Update CompileCLI stage

* Pull request feedback
2026-02-12 12:43:47 +01:00
Alex Ross
e32b285afc Warn about distro commit and compat check early (#293104)
* Warn about distro commit and compat check early

* Move distro and extension validation to separate non-blocking stage (#293124)

* Initial plan

* Add separate ValidationChecks stage for distro and extension warnings

- Created new product-validation-checks.yml template for validation checks
- Added ValidationChecks stage to product-build.yml that runs in parallel with Compile
- Only runs when VSCODE_PUBLISH is true (release builds)
- Removed checks from product-compile.yml to avoid duplication
- Both checks use continueOnError and warning modes to make stage go orange without blocking

Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>

* Simplify product-validation-checks.yml following product-publish/release pattern

- Removed unnecessary node_modules caching, NPM registry setup, and authentication
- Simplified to just install build dependencies (npm ci in build directory)
- Reduced from 91 lines to 41 lines (55% reduction)
- Follows same pattern as product-publish.yml and product-release.yml

Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>
2026-02-05 18:00:33 +00:00
Dmitriy Vasyura
4ac8b5ed98 Enable Windows ARM sanity tests on the new pool (#291753)
* Enable Windows ARM sanity tests on the new pool

* Update README
2026-01-29 23:30:36 +00:00
Dmitriy Vasyura
4d8241eeaa Sanity tests updates (#291399)
* Sanity tests updates

* Revert qemu accidental change.
2026-01-28 13:58:56 -08:00
Dmitriy Vasyura
7024815efd Add test for arm64 Linux with 64K page size (#290658) 2026-01-26 18:53:22 -08:00
Dmitriy Vasyura
141d5452e8 Cache docker images for sanity tests (#290124)
Cache sanity tests docker images in Azure DevOps pipelines
2026-01-24 13:22:34 +01:00
Dmitriy Vasyura
aaaac22b3c Sanity tests for Linux (#290072)
Added Linux containers for supported platforms.
Updated tests to run and pass on all targets.
2026-01-23 18:49:15 -08:00
João Moreno
6999d48f2d fix copilot chat compat checks (#290016)
* feat: add allowlist compatibility check for API proposals in copilot chat

* TO REVERT

* fix template path

* log

* fix case sensitivity

* fix test

* remove test code
2026-01-23 21:18:38 +00:00
Connor Peet
df77ff6615 build: mix in the quality for release so product.json matches (#290007)
* build: mix in the quality for release so product.json matches

* Reapply "feat: add allowlist compatibility check for API proposals in extensions" (#290003)

This reverts commit abf64deb34.
2026-01-23 20:31:14 +00:00
Paul
abf64deb34 Revert "feat: add allowlist compatibility check for API proposals in extensions" (#290003) 2026-01-23 20:04:38 +00:00
João Moreno
69390a65e7 feat: add allowlist compatibility check for API proposals in extensions (#289923) 2026-01-23 14:56:23 +00:00
Robo
0ced11929b feat: add dmg for macOS (#289179)
* feat: add dmg for macOS arm64

* chore: create dmg for all archs

* chore: move zx dependency to build

* fix: invalid condition in universal build

* chore: update background

* fix: publishing universal dmg
2026-01-22 18:21:39 -08:00
João Moreno
3ecb8e893f Add compatibility checks for Copilot Chat extension in release build script (#287807)
* Add compatibility checks for Copilot Chat extension in release build script

* add tests

* address comment
2026-01-15 17:16:53 +00:00
Dmitriy Vasyura
f5d4eb2260 Sanity tests pipeline and bug fixes (#287721)
Contributes towards #279402
Make test/sanity NPM-install independent for faster initialization in the pipeline.
Fixed pipeline and tests ro fully pass on Windows x64 and MacOS x64.
Updated suite/test names to report nicely in ADO.
Ensure temp dir name is expanded on Windows to avoid ~ expansion from CLI.
Removed custom log file now that XML report is supported.
Added option to turn headless browsing on/off.
2026-01-14 11:18:40 +00:00
Dmitriy Vasyura
eb2802b51e Add Azure pipeline to run sanity tests (#287062)
* Add Azure pipeline to run sanity tests

* Refactor into job template, add tests logs upload.

* Remove unused packages from dependencies.
2026-01-12 18:23:54 +01:00
João Moreno
17c7cdc283 use correct timestamp format (#283813) 2025-12-16 15:07:27 +01:00
João Moreno
45557a1d28 feat: builds should track first release timestamp and release history (#283467) 2025-12-15 12:47:41 +08:00
João Moreno
0432ed536c fix typo (#279389) 2025-11-25 16:31:22 +00:00
João Moreno
4643503cd9 release insiders with rollout of 4 hours (#279331) 2025-11-25 10:36:11 +00:00
Matt Bierner
72eee73887 Convert npm scripts to ts
For #277526

Converting last of the main build scripts to typescript
2025-11-24 11:05:23 -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
Matt Bierner
fe8fc75455 Pick up latest TS native preview
Fixes the emit for copyright headers
2025-10-28 09:18:27 -07:00
Matt Bierner
77ed219366 Convert some any -> unknown in build scripts 2025-10-08 10:22:21 -07:00
João Moreno
f4c2700d45 cleanup any casts (#270371)
related to #269213
cc @mjbvz @jrieken
2025-10-08 14:05:31 +00:00
Matt Bierner
1174f9b951 Compile build scripts too 2025-10-02 23:46:45 -07:00
Matt Bierner
360c9fd134 Add lint rule for as any and bulk ignore all existing breaks
For #269213

This adds a new eslint rule for `as any` and `<any>({... })`. We'd like to remove almost all of these, however right now the first goal is to prevent them in new code. That's why with this first PR I simply add `eslint-disable` comments for all breaks

Trying to get this change in soon after branching off for release to hopefully minimize disruption during debt week work
2025-10-02 23:38:33 -07:00
Ladislau Szomoru
12600f42c1 Engineering - set isProduction for artifacts (#268870) 2025-09-29 14:27:51 +00:00
João Moreno
7f11139294 ensure valid auth tokens in releaseBuild.ts (#268318)
* ensure valid auth tokens in releaseBuild.ts

* compilation

* damn it
2025-09-29 09:15:08 +02:00
Ladislau Szomoru
bb58370bb2 Engineering - tweak repository checkout task (#267213)
* Engineering - limit the checkout for the publish and release stages

* Tweak checkout for each job

* Fix path
2025-09-17 16:30:05 +02:00
Ladislau Szomoru
8b03d13e2e Engineering - pipeline improvements (#267130)
* Engineering - try things out

* Use parameters.sbomEnabled instead

* Windows CLI - disable SBOM creation

* macOS CLI - disable SBOM creation

* Remove the isProduction template parameter
2025-09-17 00:05:39 +00:00
Ladislau Szomoru
8e7ae9a3b5 Engineering - mark test artifacts as non-production (#266146)
* Engineering - disable SDL tasks for non-production artifacts

* Engineering - set isProduction for test artifacts
2025-09-11 07:12:40 +00:00
Ladislau Szomoru
5e5685ca72 Engineering - fix compile stage warning (#264469) 2025-09-02 08:19:34 +00:00
João Moreno
0ec8ac6438 Check for artifact existence before publishing (#263777)
* Refactor artifact publishing steps to use a common template across all build configurations

* Refactor conditions in publish artifact template

* typo

* whops

* fix msg

* hm
2025-08-29 15:49:34 +02:00
Matt Bierner
12a275ffe7 Use ts-native to compile our build scripts
There are a few minor differences in output, mostly around formatting/comments. Const enums are also not inlined but that seems fine in these cases
2025-08-06 11:41:52 -07:00
João Moreno
645143f1d3 Joao/apricot-felidae (#247391)
* ensure publish script checks for stage success at the end

* test build

* missed compilation

* damn it

* better log message

* cleanup

* fixes #238833
2025-04-25 16:45:55 +02:00
João Moreno
3a8f49f342 ensure publish script checks for stage success at the end (#247311)
* ensure publish script checks for stage success at the end

* test build

* missed compilation

* damn it

* better log message

* cleanup
2025-04-24 22:24:40 +02:00
Ladislau Szomoru
1799c2beaa Engineering - refactor codesign scripts (#246459)
* Engineering - consolidate codesign scripts

* Try using a script task

* Switch back to old syntax

* Bump deemon
2025-04-14 09:13:45 +02:00
Ladislau Szomoru
5d1942a398 Engineering - refactor macOS stage (#246059)
* WIP - fold sign steps into the jobs

* Speed up compilation

* Add back tasks

* Remove tasks that are not needed

* Update folder

* Fix universal job

* More work

* Improve script

* Improve logging

* More logging tweaks

* Another fix for the script

* Add back CLI job and run tests

* Fix pipeline condition

* Move testing to the ARM64 stage

* Update Codesign task names

* Run tests after publishing unsigned packages

* Background codesign

* Use bash when running background signing

* Another attempt

* Add error handling to script

* Add more logging

* .

* Pull request feedback

* More feedback

* Remove signature verification condition

* Delete tasks that are not needed

* Fix task display name

* Use VSCODE_ARCH parameter

* Update task display name
2025-04-09 11:22:35 +00:00
Robo
31ec1c528f build: remove legacy server support (#235232)
* build: remove legacy server support

* chore: update rpm dependencies

* chore: fix publishing

* cli: provide option for unsupported glibc sysroot

* chore: add unsupported mode to prereq check

* chore: add logging

* chore: add comment about patchelf execution order
2025-03-10 17:54:23 +01:00
João Moreno
353b50786b Use SAS urls for ESRP (#240984)
* use sas urls for esrp

* use user delegation SAS

* hm
2025-02-18 12:02:54 +01:00
João Moreno
2c35b6a4da fix exclusive web build (#240994) 2025-02-18 11:01:18 +01:00