diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml index 09b2ffe463d..0ae47fc8d8f 100644 --- a/build/azure-pipelines/darwin/product-build-darwin.yml +++ b/build/azure-pipelines/darwin/product-build-darwin.yml @@ -37,7 +37,7 @@ steps: - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 inputs: - keyfile: '**/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' + keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' targetfolder: '**/node_modules, !**/node_modules/**/node_modules' vstsFeed: 'npm-vscode' @@ -49,10 +49,9 @@ steps: - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 inputs: - keyfile: '**/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' + keyfile: '.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')) - script: | set -e diff --git a/build/azure-pipelines/linux/product-build-linux-alpine.yml b/build/azure-pipelines/linux/product-build-linux-alpine.yml index b5fe88487a9..5a3c0b4b4b1 100644 --- a/build/azure-pipelines/linux/product-build-linux-alpine.yml +++ b/build/azure-pipelines/linux/product-build-linux-alpine.yml @@ -44,10 +44,23 @@ steps: git merge $(node -p "require('./package.json').distro") displayName: Merge distro +- 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: 'npm-vscode' + - script: | set -e - CHILD_CONCURRENCY=1 yarn --frozen-lockfile + 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: 'npm-vscode' - script: | set -e diff --git a/build/azure-pipelines/linux/product-build-linux-arm.yml b/build/azure-pipelines/linux/product-build-linux-arm.yml index c091a44b5f2..a9d32ee5dc2 100644 --- a/build/azure-pipelines/linux/product-build-linux-arm.yml +++ b/build/azure-pipelines/linux/product-build-linux-arm.yml @@ -44,10 +44,23 @@ steps: git merge $(node -p "require('./package.json').distro") displayName: Merge distro +- 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: 'npm-vscode' + - script: | set -e - CHILD_CONCURRENCY=1 yarn --frozen-lockfile + 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: 'npm-vscode' - script: | set -e diff --git a/build/azure-pipelines/linux/product-build-linux.yml b/build/azure-pipelines/linux/product-build-linux.yml index f3ac9a91713..15d39b37a69 100644 --- a/build/azure-pipelines/linux/product-build-linux.yml +++ b/build/azure-pipelines/linux/product-build-linux.yml @@ -54,79 +54,79 @@ steps: targetfolder: '**/node_modules, !**/node_modules/**/node_modules' vstsFeed: 'npm-vscode' -# - script: | -# set -e -# yarn gulp mixin -# displayName: Mix in quality +- script: | + set -e + yarn gulp mixin + displayName: Mix in quality -# - script: | -# set -e -# yarn gulp hygiene -# yarn monaco-compile-check -# displayName: Run hygiene checks -# condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) +- script: | + set -e + yarn gulp hygiene + yarn monaco-compile-check + displayName: Run hygiene checks + condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) -# - script: | -# set -e -# node build/azure-pipelines/common/installDistroDependencies.js -# node build/azure-pipelines/common/installDistroDependencies.js remote -# node build/lib/builtInExtensions.js -# displayName: Install distro dependencies and extensions +- script: | + set -e + node build/azure-pipelines/common/installDistroDependencies.js + node build/azure-pipelines/common/installDistroDependencies.js remote + node build/lib/builtInExtensions.js + displayName: Install distro dependencies and extensions -# - script: | -# set -e -# cd $BUILD_STAGINGDIRECTORY -# git clone https://github.com/microsoft/vscode-telemetry-extractor.git -# cd vscode-telemetry-extractor -# git checkout 3b04aba5bfdfcca1a5426cd2c51a90d18740d0bc -# npm i -# npm run setup-extension-repos -# node ./out/cli-extract.js --sourceDir $BUILD_SOURCESDIRECTORY --excludedDirPattern extensions --outputDir . --applyEndpoints --includeIsMeasurement --patchWebsiteEvents -# node ./out/cli-extract-extensions.js --sourceDir ./src/telemetry-sources --outputDir . --applyEndpoints --includeIsMeasurement -# mkdir -p $BUILD_SOURCESDIRECTORY/.build/telemetry -# mv declarations-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-core.json -# mv declarations-extensions-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-extensions.json -# displayName: Extract Telemetry +- script: | + set -e + cd $BUILD_STAGINGDIRECTORY + git clone https://github.com/microsoft/vscode-telemetry-extractor.git + cd vscode-telemetry-extractor + git checkout 3b04aba5bfdfcca1a5426cd2c51a90d18740d0bc + npm i + npm run setup-extension-repos + node ./out/cli-extract.js --sourceDir $BUILD_SOURCESDIRECTORY --excludedDirPattern extensions --outputDir . --applyEndpoints --includeIsMeasurement --patchWebsiteEvents + node ./out/cli-extract-extensions.js --sourceDir ./src/telemetry-sources --outputDir . --applyEndpoints --includeIsMeasurement + mkdir -p $BUILD_SOURCESDIRECTORY/.build/telemetry + mv declarations-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-core.json + mv declarations-extensions-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-extensions.json + displayName: Extract Telemetry -# - script: | -# set -e -# yarn gulp compile-build -# yarn gulp compile-extensions-build -# 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-web-linux-$VSCODE_ARCH-min-ci -# displayName: Build +- script: | + set -e + yarn gulp compile-build + yarn gulp compile-extensions-build + 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-web-linux-$VSCODE_ARCH-min-ci + displayName: Build -# - script: | -# set -e -# yarn gulp "electron-$(VSCODE_ARCH)" +- script: | + set -e + yarn gulp "electron-$(VSCODE_ARCH)" -# # xvfb seems to be crashing often, let's make sure it's always up -# service xvfb start + # xvfb seems to be crashing often, let's make sure it's always up + service xvfb start -# DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests" -# # yarn smoketest -- --build "$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)" -# displayName: Run unit tests -# condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) + DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests" + # yarn smoketest -- --build "$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)" + displayName: Run unit tests + condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) -# - script: | -# set -e -# AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \ -# AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \ -# VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \ -# VSCODE_HOCKEYAPP_TOKEN="$(vscode-hockeyapp-token)" \ -# ./build/azure-pipelines/linux/publish.sh -# displayName: Publish +- script: | + set -e + AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \ + AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \ + VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \ + VSCODE_HOCKEYAPP_TOKEN="$(vscode-hockeyapp-token)" \ + ./build/azure-pipelines/linux/publish.sh + displayName: Publish -# - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 -# displayName: 'Component Detection' -# continueOnError: true +- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 + displayName: 'Component Detection' + continueOnError: true -# - task: PublishPipelineArtifact@0 -# displayName: 'Publish Pipeline Artifact' -# inputs: -# artifactName: snap-$(VSCODE_ARCH) -# targetPath: .build/linux/snap-tarball +- task: PublishPipelineArtifact@0 + displayName: 'Publish Pipeline Artifact' + inputs: + artifactName: snap-$(VSCODE_ARCH) + targetPath: .build/linux/snap-tarball diff --git a/build/azure-pipelines/product-build.yml b/build/azure-pipelines/product-build.yml index 2e0df5ef552..0353a0354d5 100644 --- a/build/azure-pipelines/product-build.yml +++ b/build/azure-pipelines/product-build.yml @@ -7,31 +7,31 @@ resources: image: snapcore/snapcraft:stable jobs: -# - job: Linux +# - job: Compile # pool: # vmImage: 'Ubuntu-16.04' # steps: # - template: compile.yml -# - job: Windows -# condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true')) -# timeoutInMinutes: 120 -# pool: -# vmImage: VS2017-Win2016 -# variables: -# VSCODE_ARCH: x64 -# steps: -# - template: win32/product-build-win32.yml +- job: Windows + condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true')) + timeoutInMinutes: 120 + pool: + vmImage: VS2017-Win2016 + variables: + VSCODE_ARCH: x64 + steps: + - template: win32/product-build-win32.yml -# - job: Windows32 -# condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true')) -# timeoutInMinutes: 120 -# pool: -# vmImage: VS2017-Win2016 -# variables: -# VSCODE_ARCH: ia32 -# steps: -# - template: win32/product-build-win32.yml +- job: Windows32 + condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true')) + timeoutInMinutes: 120 + pool: + vmImage: VS2017-Win2016 + variables: + VSCODE_ARCH: ia32 + steps: + - template: win32/product-build-win32.yml - job: Linux condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true')) @@ -44,75 +44,75 @@ jobs: steps: - template: linux/product-build-linux.yml -# - job: LinuxSnap -# condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true')) -# timeoutInMinutes: 120 -# pool: -# vmImage: 'Ubuntu-16.04' -# variables: -# VSCODE_ARCH: x64 -# container: snapcraft -# dependsOn: Linux -# steps: -# - template: linux/snap-build-linux.yml +- job: LinuxSnap + condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true')) + timeoutInMinutes: 120 + pool: + vmImage: 'Ubuntu-16.04' + variables: + VSCODE_ARCH: x64 + container: snapcraft + dependsOn: Linux + steps: + - template: linux/snap-build-linux.yml -# - job: LinuxArmhf -# condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'), ne(variables['VSCODE_QUALITY'], 'stable')) -# timeoutInMinutes: 120 -# pool: -# vmImage: 'Ubuntu-16.04' -# variables: -# VSCODE_ARCH: armhf -# steps: -# - template: linux/product-build-linux-arm.yml +- job: LinuxArmhf + condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'), ne(variables['VSCODE_QUALITY'], 'stable')) + timeoutInMinutes: 120 + pool: + vmImage: 'Ubuntu-16.04' + variables: + VSCODE_ARCH: armhf + steps: + - template: linux/product-build-linux-arm.yml -# - job: LinuxAlpine -# condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'), ne(variables['VSCODE_QUALITY'], 'stable')) -# timeoutInMinutes: 120 -# pool: -# vmImage: 'Ubuntu-16.04' -# variables: -# VSCODE_ARCH: alpine -# steps: -# - template: linux/product-build-linux-alpine.yml +- job: LinuxAlpine + condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'), ne(variables['VSCODE_QUALITY'], 'stable')) + timeoutInMinutes: 120 + pool: + vmImage: 'Ubuntu-16.04' + variables: + VSCODE_ARCH: alpine + steps: + - template: linux/product-build-linux-alpine.yml -# - job: macOS -# condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true')) -# timeoutInMinutes: 120 -# pool: -# vmImage: macOS 10.13 -# steps: -# - template: darwin/product-build-darwin.yml +- job: macOS + condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true')) + timeoutInMinutes: 120 + pool: + vmImage: macOS 10.13 + steps: + - template: darwin/product-build-darwin.yml -# - job: Release -# condition: and(succeeded(), 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' -# dependsOn: -# - Windows -# - Windows32 -# - Linux -# - LinuxSnap -# - LinuxArmhf -# - LinuxAlpine -# - macOS -# steps: -# - template: release.yml +- job: Release + condition: and(succeeded(), 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' + dependsOn: + - Windows + - Windows32 + - Linux + - LinuxSnap + - LinuxArmhf + - LinuxAlpine + - macOS + steps: + - template: release.yml -# - job: Mooncake -# pool: -# vmImage: 'Ubuntu-16.04' -# condition: true -# dependsOn: -# - Windows -# - Windows32 -# - Linux -# - LinuxSnap -# - LinuxArmhf -# - LinuxAlpine -# - macOS -# steps: -# - template: sync-mooncake.yml +- job: Mooncake + pool: + vmImage: 'Ubuntu-16.04' + condition: true + dependsOn: + - Windows + - Windows32 + - Linux + - LinuxSnap + - LinuxArmhf + - LinuxAlpine + - macOS + steps: + - template: sync-mooncake.yml schedules: - cron: "0 6 * * Mon-Fri" diff --git a/build/azure-pipelines/win32/product-build-win32.yml b/build/azure-pipelines/win32/product-build-win32.yml index 46362f655ad..9a2162d1a33 100644 --- a/build/azure-pipelines/win32/product-build-win32.yml +++ b/build/azure-pipelines/win32/product-build-win32.yml @@ -37,7 +37,7 @@ steps: - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 inputs: - keyfile: '**/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' + keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' targetfolder: '**/node_modules, !**/node_modules/**/node_modules' vstsFeed: 'npm-vscode' @@ -52,10 +52,9 @@ steps: - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 inputs: - keyfile: '**/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' + keyfile: '.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')) - powershell: | . build/azure-pipelines/win32/exec.ps1