Path: blob/main/build/azure-pipelines/product-build.yml
3520 views
pr: none12schedules:3- cron: "0 5 * * Mon-Fri"4displayName: Mon-Fri at 7:005branches:6include:7- main89trigger:10batch: true11branches:12include: ["main", "release/*"]1314parameters:15- name: VSCODE_QUALITY16displayName: Quality17type: string18default: insider19values:20- exploration21- insider22- stable23- name: NPM_REGISTRY24displayName: "Custom NPM Registry"25type: string26default: 'https://pkgs.dev.azure.com/monacotools/Monaco/_packaging/vscode/npm/registry/'27- name: CARGO_REGISTRY28displayName: "Custom Cargo Registry"29type: string30default: 'sparse+https://pkgs.dev.azure.com/monacotools/Monaco/_packaging/vscode/Cargo/index/'31- name: VSCODE_BUILD_WIN3232displayName: "🎯 Windows x64"33type: boolean34default: true35- name: VSCODE_BUILD_WIN32_ARM6436displayName: "🎯 Windows arm64"37type: boolean38default: true39- name: VSCODE_BUILD_LINUX40displayName: "🎯 Linux x64"41type: boolean42default: true43- name: VSCODE_BUILD_LINUX_SNAP44displayName: "🎯 Linux x64 Snap"45type: boolean46default: true47- name: VSCODE_BUILD_LINUX_ARM6448displayName: "🎯 Linux arm64"49type: boolean50default: true51- name: VSCODE_BUILD_LINUX_ARMHF52displayName: "🎯 Linux armhf"53type: boolean54default: true55- name: VSCODE_BUILD_ALPINE56displayName: "🎯 Alpine x64"57type: boolean58default: true59- name: VSCODE_BUILD_ALPINE_ARM6460displayName: "🎯 Alpine arm64"61type: boolean62default: true63- name: VSCODE_BUILD_MACOS64displayName: "🎯 macOS x64"65type: boolean66default: true67- name: VSCODE_BUILD_MACOS_ARM6468displayName: "🎯 macOS arm64"69type: boolean70default: true71- name: VSCODE_BUILD_MACOS_UNIVERSAL72displayName: "🎯 macOS universal"73type: boolean74default: true75- name: VSCODE_BUILD_WEB76displayName: "🎯 Web"77type: boolean78default: true79- name: VSCODE_PUBLISH80displayName: "Publish to builds.code.visualstudio.com"81type: boolean82default: true83- name: VSCODE_RELEASE84displayName: "Release build if successful"85type: boolean86default: false87- name: VSCODE_COMPILE_ONLY88displayName: "Run Compile stage exclusively"89type: boolean90default: false91- name: VSCODE_STEP_ON_IT92displayName: "Skip tests"93type: boolean94default: false9596variables:97- name: VSCODE_PRIVATE_BUILD98value: ${{ ne(variables['Build.Repository.Uri'], 'https://github.com/microsoft/vscode.git') }}99- name: NPM_REGISTRY100${{ if in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI') }}: # disable terrapin when in VSCODE_CIBUILD101value: none102${{ else }}:103value: ${{ parameters.NPM_REGISTRY }}104- name: CARGO_REGISTRY105value: ${{ parameters.CARGO_REGISTRY }}106- name: VSCODE_QUALITY107value: ${{ parameters.VSCODE_QUALITY }}108- name: VSCODE_BUILD_STAGE_WINDOWS109value: ${{ or(eq(parameters.VSCODE_BUILD_WIN32, true), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}110- name: VSCODE_BUILD_STAGE_LINUX111value: ${{ or(eq(parameters.VSCODE_BUILD_LINUX, true), eq(parameters.VSCODE_BUILD_LINUX_SNAP, true), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true)) }}112- name: VSCODE_BUILD_STAGE_ALPINE113value: ${{ or(eq(parameters.VSCODE_BUILD_ALPINE, true), eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true)) }}114- name: VSCODE_BUILD_STAGE_MACOS115value: ${{ or(eq(parameters.VSCODE_BUILD_MACOS, true), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true)) }}116- name: VSCODE_BUILD_STAGE_WEB117value: ${{ eq(parameters.VSCODE_BUILD_WEB, true) }}118- name: VSCODE_CIBUILD119value: ${{ in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI') }}120- name: VSCODE_PUBLISH121value: ${{ and(eq(parameters.VSCODE_PUBLISH, true), eq(variables.VSCODE_CIBUILD, false), eq(parameters.VSCODE_COMPILE_ONLY, false)) }}122- name: VSCODE_SCHEDULEDBUILD123value: ${{ eq(variables['Build.Reason'], 'Schedule') }}124- name: VSCODE_STEP_ON_IT125value: ${{ eq(parameters.VSCODE_STEP_ON_IT, true) }}126- name: VSCODE_BUILD_MACOS_UNIVERSAL127value: ${{ and(eq(parameters.VSCODE_BUILD_MACOS, true), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true), eq(parameters.VSCODE_BUILD_MACOS_UNIVERSAL, true)) }}128- name: VSCODE_STAGING_BLOB_STORAGE_ACCOUNT_NAME129value: vscodeesrp130- name: PRSS_CDN_URL131value: https://vscode.download.prss.microsoft.com/dbazure/download132- name: VSCODE_ESRP_SERVICE_CONNECTION_ID133value: fe07e6ce-6ffb-4df9-8d27-d129523a3f3e134- name: VSCODE_ESRP_TENANT_ID135value: 975f013f-7f24-47e8-a7d3-abc4752bf346136- name: VSCODE_ESRP_CLIENT_ID137value: 4ac7ed59-b5e9-4f66-9c30-8d1afa72d32d138- name: ESRP_TENANT_ID139value: 975f013f-7f24-47e8-a7d3-abc4752bf346140- name: ESRP_CLIENT_ID141value: c24324f7-e65f-4c45-8702-ed2d4c35df99142- name: AZURE_DOCUMENTDB_ENDPOINT143value: https://vscode.documents.azure.com/144- name: VSCODE_MIXIN_REPO145value: microsoft/vscode-distro146- name: skipComponentGovernanceDetection147value: true148- name: ComponentDetection.Timeout149value: 600150- name: Codeql.SkipTaskAutoInjection151value: true152- name: ARTIFACT_PREFIX153value: ''154155name: "$(Date:yyyyMMdd).$(Rev:r) (${{ parameters.VSCODE_QUALITY }})"156157resources:158pipelines:159- pipeline: vscode-7pm-kick-off160source: 'VS Code 7PM Kick-Off'161trigger: true162repositories:163- repository: 1ESPipelines164type: git165name: 1ESPipelineTemplates/1ESPipelineTemplates166ref: refs/tags/release167168extends:169template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines170parameters:171sdl:172tsa:173enabled: true174configFile: $(Build.SourcesDirectory)/build/azure-pipelines/config/tsaoptions.json175binskim:176analyzeTargetGlob: '+:file|$(Agent.BuildDirectory)/VSCode-*/**/*.exe;+:file|$(Agent.BuildDirectory)/VSCode-*/**/*.node;+:file|$(Agent.BuildDirectory)/VSCode-*/**/*.dll;-:file|$(Build.SourcesDirectory)/.build/**/system-setup/VSCodeSetup*.exe;-:file|$(Build.SourcesDirectory)/.build/**/user-setup/VSCodeUserSetup*.exe'177codeql:178runSourceLanguagesInSourceAnalysis: true179compiled:180enabled: false181justificationForDisabling: "CodeQL breaks ESRP CodeSign on macOS (ICM #520035761, githubcustomers/microsoft-codeql-support#198)"182credscan:183suppressionsFile: $(Build.SourcesDirectory)/build/azure-pipelines/config/CredScanSuppressions.json184eslint:185enabled: true186enableExclusions: true187exclusionsFilePath: $(Build.SourcesDirectory)/.eslint-ignore188sourceAnalysisPool: 1es-windows-2022-x64189createAdoIssuesForJustificationsForDisablement: false190containers:191ubuntu-2004-arm64:192image: onebranch.azurecr.io/linux/ubuntu-2004-arm64:latest193stages:194- stage: Compile195jobs:196- template: build/azure-pipelines/product-compile.yml@self197198- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:199- stage: CompileCLI200dependsOn: []201jobs:202- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:203- job: CLILinuxX64204pool:205name: 1es-ubuntu-22.04-x64206os: linux207steps:208- template: build/azure-pipelines/linux/cli-build-linux.yml@self209parameters:210VSCODE_CHECK_ONLY: ${{ variables.VSCODE_CIBUILD }}211VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}212VSCODE_BUILD_LINUX: ${{ parameters.VSCODE_BUILD_LINUX }}213214- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:215- job: CLILinuxGnuARM216pool:217name: 1es-ubuntu-22.04-x64218os: linux219steps:220- template: build/azure-pipelines/linux/cli-build-linux.yml@self221parameters:222VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}223VSCODE_BUILD_LINUX_ARMHF: ${{ parameters.VSCODE_BUILD_LINUX_ARMHF }}224225- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true)) }}:226- job: CLILinuxGnuAarch64227pool:228name: 1es-ubuntu-22.04-x64229os: linux230steps:231- template: build/azure-pipelines/linux/cli-build-linux.yml@self232parameters:233VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}234VSCODE_BUILD_LINUX_ARM64: ${{ parameters.VSCODE_BUILD_LINUX_ARM64 }}235236- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_ALPINE, true)) }}:237- job: CLIAlpineX64238pool:239name: 1es-ubuntu-22.04-x64240os: linux241steps:242- template: build/azure-pipelines/alpine/cli-build-alpine.yml@self243parameters:244VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}245VSCODE_BUILD_ALPINE: ${{ parameters.VSCODE_BUILD_ALPINE }}246247- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true)) }}:248- job: CLIAlpineARM64249pool:250name: 1es-ubuntu-22.04-x64251os: linux252steps:253- template: build/azure-pipelines/alpine/cli-build-alpine.yml@self254parameters:255VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}256VSCODE_BUILD_ALPINE_ARM64: ${{ parameters.VSCODE_BUILD_ALPINE_ARM64 }}257258- ${{ if eq(parameters.VSCODE_BUILD_MACOS, true) }}:259- job: CLIMacOSX64260pool:261name: AcesShared262os: macOS263variables:264# todo@connor4312 to diagnose build flakes265- name: MSRUSTUP_LOG266value: debug267steps:268- template: build/azure-pipelines/darwin/cli-build-darwin.yml@self269parameters:270VSCODE_CHECK_ONLY: ${{ variables.VSCODE_CIBUILD }}271VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}272VSCODE_BUILD_MACOS: ${{ parameters.VSCODE_BUILD_MACOS }}273274- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true)) }}:275- job: CLIMacOSARM64276pool:277name: AcesShared278os: macOS279variables:280# todo@connor4312 to diagnose build flakes281- name: MSRUSTUP_LOG282value: debug283steps:284- template: build/azure-pipelines/darwin/cli-build-darwin.yml@self285parameters:286VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}287VSCODE_BUILD_MACOS_ARM64: ${{ parameters.VSCODE_BUILD_MACOS_ARM64 }}288289- ${{ if eq(parameters.VSCODE_BUILD_WIN32, true) }}:290- job: CLIWindowsX64291pool:292name: 1es-windows-2022-x64293os: windows294steps:295- template: build/azure-pipelines/win32/product-build-win32-cli-compile.yml@self296parameters:297VSCODE_CHECK_ONLY: ${{ variables.VSCODE_CIBUILD }}298VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}299VSCODE_BUILD_WIN32: ${{ parameters.VSCODE_BUILD_WIN32 }}300301- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:302- job: CLIWindowsARM64303pool:304name: 1es-windows-2022-x64305os: windows306steps:307- template: build/azure-pipelines/win32/product-build-win32-cli-compile.yml@self308parameters:309VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}310VSCODE_BUILD_WIN32_ARM64: ${{ parameters.VSCODE_BUILD_WIN32_ARM64 }}311312- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_COMPILE_ONLY, false)) }}:313- stage: APIScan314dependsOn: []315pool:316name: 1es-windows-2022-x64317os: windows318jobs:319- job: WindowsAPIScan320steps:321- template: build/azure-pipelines/win32/sdl-scan-win32.yml@self322parameters:323VSCODE_ARCH: x64324VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}325326- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_WINDOWS'], true)) }}:327- stage: Windows328dependsOn:329- Compile330- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:331- CompileCLI332pool:333name: 1es-windows-2022-x64334os: windows335jobs:336- ${{ if eq(variables['VSCODE_CIBUILD'], true) }}:337- template: build/azure-pipelines/win32/product-build-win32-ci.yml@self338parameters:339VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}340VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}341VSCODE_TEST_SUITE: Electron342- template: build/azure-pipelines/win32/product-build-win32-ci.yml@self343parameters:344VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}345VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}346VSCODE_TEST_SUITE: Browser347- template: build/azure-pipelines/win32/product-build-win32-ci.yml@self348parameters:349VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}350VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}351VSCODE_TEST_SUITE: Remote352353- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WIN32, true)) }}:354- template: build/azure-pipelines/win32/product-build-win32.yml@self355parameters:356VSCODE_ARCH: x64357VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}358VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}359VSCODE_RUN_ELECTRON_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}360VSCODE_RUN_BROWSER_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}361VSCODE_RUN_REMOTE_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}362363- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:364- template: build/azure-pipelines/win32/product-build-win32.yml@self365parameters:366VSCODE_ARCH: arm64367VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}368VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}369370- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), or(eq(parameters.VSCODE_BUILD_WIN32, true), eq(parameters.VSCODE_BUILD_WIN32_ARM64, true))) }}:371- template: build/azure-pipelines/win32/product-build-win32-cli-sign.yml@self372parameters:373VSCODE_BUILD_WIN32: ${{ parameters.VSCODE_BUILD_WIN32 }}374VSCODE_BUILD_WIN32_ARM64: ${{ parameters.VSCODE_BUILD_WIN32_ARM64 }}375376- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_LINUX'], true)) }}:377- stage: Linux378dependsOn:379- Compile380- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:381- CompileCLI382pool:383name: 1es-ubuntu-22.04-x64384os: linux385jobs:386- ${{ if eq(variables['VSCODE_CIBUILD'], true) }}:387- job: Linuxx64ElectronTest388displayName: Electron Tests389timeoutInMinutes: 30390variables:391VSCODE_ARCH: x64392NPM_ARCH: x64393DISPLAY: ":10"394steps:395- template: build/azure-pipelines/linux/product-build-linux.yml@self396parameters:397VSCODE_ARCH: x64398VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}399VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}400VSCODE_TEST_ARTIFACT_NAME: electron401VSCODE_RUN_ELECTRON_TESTS: true402- job: Linuxx64BrowserTest403displayName: Browser Tests404timeoutInMinutes: 30405variables:406VSCODE_ARCH: x64407NPM_ARCH: x64408DISPLAY: ":10"409steps:410- template: build/azure-pipelines/linux/product-build-linux.yml@self411parameters:412VSCODE_ARCH: x64413VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}414VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}415VSCODE_TEST_ARTIFACT_NAME: browser416VSCODE_RUN_BROWSER_TESTS: true417- job: Linuxx64RemoteTest418displayName: Remote Tests419timeoutInMinutes: 30420variables:421VSCODE_ARCH: x64422NPM_ARCH: x64423DISPLAY: ":10"424steps:425- template: build/azure-pipelines/linux/product-build-linux.yml@self426parameters:427VSCODE_ARCH: x64428VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}429VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}430VSCODE_TEST_ARTIFACT_NAME: remote431VSCODE_RUN_REMOTE_TESTS: true432433- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), or(eq(parameters.VSCODE_BUILD_LINUX, true), eq(parameters.VSCODE_BUILD_LINUX_SNAP, true))) }}:434- job: Linuxx64435timeoutInMinutes: 90436variables:437VSCODE_ARCH: x64438NPM_ARCH: x64439DISPLAY: ":10"440steps:441- template: build/azure-pipelines/linux/product-build-linux.yml@self442parameters:443VSCODE_ARCH: x64444VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}445VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}446VSCODE_RUN_ELECTRON_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}447VSCODE_RUN_BROWSER_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}448VSCODE_RUN_REMOTE_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}449VSCODE_BUILD_LINUX_SNAP: ${{ parameters.VSCODE_BUILD_LINUX_SNAP }}450451- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:452- job: LinuxArmhf453variables:454VSCODE_ARCH: armhf455NPM_ARCH: arm456steps:457- template: build/azure-pipelines/linux/product-build-linux.yml@self458parameters:459VSCODE_ARCH: armhf460VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}461VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}462463- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARM64, true)) }}:464- job: LinuxArm64465variables:466VSCODE_ARCH: arm64467NPM_ARCH: arm64468steps:469- template: build/azure-pipelines/linux/product-build-linux.yml@self470parameters:471VSCODE_ARCH: arm64472VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}473VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}474475- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_ALPINE'], true)) }}:476- stage: Alpine477dependsOn:478- Compile479- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:480- CompileCLI481pool:482name: 1es-ubuntu-22.04-x64483os: linux484jobs:485- ${{ if eq(parameters.VSCODE_BUILD_ALPINE, true) }}:486- job: LinuxAlpine487variables:488VSCODE_ARCH: x64489NPM_ARCH: x64490steps:491- template: build/azure-pipelines/alpine/product-build-alpine.yml@self492493- ${{ if eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true) }}:494- job: LinuxAlpineArm64495timeoutInMinutes: 120496variables:497VSCODE_ARCH: arm64498NPM_ARCH: arm64499steps:500- template: build/azure-pipelines/alpine/product-build-alpine.yml@self501502- ${{ if and(eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_MACOS'], true)) }}:503- stage: macOS504dependsOn:505- Compile506- ${{ if 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_ALPINE, true),eq(parameters.VSCODE_BUILD_ALPINE_ARM64, true),eq(parameters.VSCODE_BUILD_MACOS, true),eq(parameters.VSCODE_BUILD_MACOS_ARM64, true),eq(parameters.VSCODE_BUILD_WIN32, true),eq(parameters.VSCODE_BUILD_WIN32_ARM64, true)) }}:507- CompileCLI508pool:509name: AcesShared510os: macOS511variables:512BUILDSECMON_OPT_IN: true513jobs:514- ${{ if eq(variables['VSCODE_CIBUILD'], true) }}:515- job: macOSElectronTest516displayName: Electron Tests517timeoutInMinutes: 30518variables:519VSCODE_ARCH: arm64520steps:521- template: build/azure-pipelines/darwin/product-build-darwin.yml@self522parameters:523VSCODE_ARCH: arm64524VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}525VSCODE_TEST_ARTIFACT_NAME: electron526VSCODE_RUN_ELECTRON_TESTS: true527- job: macOSBrowserTest528displayName: Browser Tests529timeoutInMinutes: 30530variables:531VSCODE_ARCH: arm64532steps:533- template: build/azure-pipelines/darwin/product-build-darwin.yml@self534parameters:535VSCODE_ARCH: arm64536VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}537VSCODE_TEST_ARTIFACT_NAME: browser538VSCODE_RUN_BROWSER_TESTS: true539- job: macOSRemoteTest540displayName: Remote Tests541timeoutInMinutes: 30542variables:543VSCODE_ARCH: arm64544steps:545- template: build/azure-pipelines/darwin/product-build-darwin.yml@self546parameters:547VSCODE_ARCH: arm64548VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}549VSCODE_TEST_ARTIFACT_NAME: remote550VSCODE_RUN_REMOTE_TESTS: true551552- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_MACOS, true)) }}:553- job: macOS554timeoutInMinutes: 90555variables:556VSCODE_ARCH: x64557BUILDS_API_URL: $(System.CollectionUri)$(System.TeamProject)/_apis/build/builds/$(Build.BuildId)/558steps:559- template: build/azure-pipelines/darwin/product-build-darwin.yml@self560parameters:561VSCODE_ARCH: x64562VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}563564- job: macOSCLI565timeoutInMinutes: 90566steps:567- template: build/azure-pipelines/darwin/product-build-darwin-cli-sign.yml@self568parameters:569VSCODE_BUILD_MACOS: ${{ parameters.VSCODE_BUILD_MACOS }}570VSCODE_BUILD_MACOS_ARM64: ${{ parameters.VSCODE_BUILD_MACOS_ARM64 }}571572- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_MACOS_ARM64, true)) }}:573- job: macOSARM64574timeoutInMinutes: 90575variables:576VSCODE_ARCH: arm64577BUILDS_API_URL: $(System.CollectionUri)$(System.TeamProject)/_apis/build/builds/$(Build.BuildId)/578steps:579- template: build/azure-pipelines/darwin/product-build-darwin.yml@self580parameters:581VSCODE_ARCH: arm64582VSCODE_CIBUILD: ${{ variables.VSCODE_CIBUILD }}583VSCODE_RUN_ELECTRON_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}584VSCODE_RUN_BROWSER_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}585VSCODE_RUN_REMOTE_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}586587- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(variables['VSCODE_BUILD_MACOS_UNIVERSAL'], true)) }}:588- job: macOSUniversal589timeoutInMinutes: 90590variables:591VSCODE_ARCH: universal592BUILDS_API_URL: $(System.CollectionUri)$(System.TeamProject)/_apis/build/builds/$(Build.BuildId)/593steps:594- template: build/azure-pipelines/darwin/product-build-darwin-universal.yml@self595596- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_COMPILE_ONLY, false), eq(variables['VSCODE_BUILD_STAGE_WEB'], true)) }}:597- stage: Web598dependsOn:599- Compile600pool:601name: 1es-ubuntu-22.04-x64602os: linux603jobs:604- ${{ if eq(parameters.VSCODE_BUILD_WEB, true) }}:605- job: Web606variables:607VSCODE_ARCH: x64608steps:609- template: build/azure-pipelines/web/product-build-web.yml@self610611- ${{ if eq(variables['VSCODE_PUBLISH'], 'true') }}:612- stage: Publish613dependsOn: []614pool:615name: 1es-windows-2022-x64616os: windows617variables:618- name: BUILDS_API_URL619value: $(System.CollectionUri)$(System.TeamProject)/_apis/build/builds/$(Build.BuildId)/620jobs:621- job: PublishBuild622timeoutInMinutes: 180623displayName: Publish Build624steps:625- template: build/azure-pipelines/product-publish.yml@self626parameters:627VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}628VSCODE_SCHEDULEDBUILD: ${{ variables.VSCODE_SCHEDULEDBUILD }}629630- ${{ if and(parameters.VSCODE_RELEASE, eq(variables['VSCODE_PRIVATE_BUILD'], false)) }}:631- stage: ApproveRelease632dependsOn: [] # run in parallel to compile stage633pool:634name: 1es-ubuntu-22.04-x64635os: linux636jobs:637- job: ApproveRelease638displayName: "Approve Release"639variables:640- group: VSCodePeerApproval641- name: skipComponentGovernanceDetection642value: true643644- stage: Release645dependsOn:646- Publish647- ApproveRelease648pool:649name: 1es-ubuntu-22.04-x64650os: linux651jobs:652- job: ReleaseBuild653displayName: Release Build654steps:655- template: build/azure-pipelines/product-release.yml@self656parameters:657VSCODE_RELEASE: ${{ parameters.VSCODE_RELEASE }}658659660