From c42620d7d6905fbd5ed7de20b613ae8b3bc2dc67 Mon Sep 17 00:00:00 2001 From: Karl Burtram Date: Fri, 21 Oct 2022 14:07:10 -0700 Subject: [PATCH] Revert mixin script to fix insiders build (#20918) * Revert mixin script * Create a sql specific mixin file --- .../darwin/sql-product-build-darwin.yml | 2 +- .../docker/sql-product-build-docker.yml | 2 +- .../linux/sql-product-build-linux.yml | 2 +- build/azure-pipelines/sql-mixin.js | 68 +++++++++++++++++++ build/azure-pipelines/sql-product-compile.yml | 2 +- .../web/sql-product-build-web.yml | 2 +- .../win32/sql-product-build-win32.yml | 2 +- 7 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 build/azure-pipelines/sql-mixin.js diff --git a/build/azure-pipelines/darwin/sql-product-build-darwin.yml b/build/azure-pipelines/darwin/sql-product-build-darwin.yml index f981f03ef1..502d436365 100644 --- a/build/azure-pipelines/darwin/sql-product-build-darwin.yml +++ b/build/azure-pipelines/darwin/sql-product-build-darwin.yml @@ -94,7 +94,7 @@ steps: - script: | set -e - node build/azure-pipelines/mixin + node build/azure-pipelines/sql-mixin displayName: Mix in quality - script: | diff --git a/build/azure-pipelines/docker/sql-product-build-docker.yml b/build/azure-pipelines/docker/sql-product-build-docker.yml index e84e38d2db..4fb4d1a07c 100644 --- a/build/azure-pipelines/docker/sql-product-build-docker.yml +++ b/build/azure-pipelines/docker/sql-product-build-docker.yml @@ -64,7 +64,7 @@ steps: - script: | set -e - node build/azure-pipelines/mixin + node build/azure-pipelines/sql-mixin displayName: Mix in quality - task: DownloadBuildArtifacts@0 diff --git a/build/azure-pipelines/linux/sql-product-build-linux.yml b/build/azure-pipelines/linux/sql-product-build-linux.yml index 75bdf387c7..8e1ebe53ca 100644 --- a/build/azure-pipelines/linux/sql-product-build-linux.yml +++ b/build/azure-pipelines/linux/sql-product-build-linux.yml @@ -89,7 +89,7 @@ steps: - script: | set -e - node build/azure-pipelines/mixin + node build/azure-pipelines/sql-mixin displayName: Mix in quality - script: | diff --git a/build/azure-pipelines/sql-mixin.js b/build/azure-pipelines/sql-mixin.js new file mode 100644 index 0000000000..40cf53b50d --- /dev/null +++ b/build/azure-pipelines/sql-mixin.js @@ -0,0 +1,68 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +'use strict'; + +const json = require('gulp-json-editor'); +const buffer = require('gulp-buffer'); +const filter = require('gulp-filter'); +const es = require('event-stream'); +const vfs = require('vinyl-fs'); +const fancyLog = require('fancy-log'); +const ansiColors = require('ansi-colors'); +const fs = require('fs'); +const path = require('path'); + +function main() { + const quality = process.env['VSCODE_QUALITY']; + + if (!quality) { + console.log('Missing VSCODE_QUALITY, skipping mixin'); + return; + } + + const productJsonFilter = filter(f => f.relative === 'product.json', { restore: true }); + + fancyLog(ansiColors.blue('[mixin]'), `Mixing in sources:`); + return vfs + .src(`quality/${quality}/**`, { base: `quality/${quality}` }) + .pipe(filter(f => !f.isDirectory())) + .pipe(productJsonFilter) + .pipe(buffer()) + .pipe(json(o => { + const ossProduct = JSON.parse(fs.readFileSync(path.join(__dirname, '..', '..', 'product.json'), 'utf8')); + let builtInExtensions = ossProduct.builtInExtensions; + + if (Array.isArray(o.builtInExtensions)) { + fancyLog(ansiColors.blue('[mixin]'), 'Overwriting built-in extensions:', o.builtInExtensions.map(e => e.name)); + + builtInExtensions = o.builtInExtensions; + } else if (o.builtInExtensions) { + const include = o.builtInExtensions['include'] || []; + const exclude = o.builtInExtensions['exclude'] || []; + + fancyLog(ansiColors.blue('[mixin]'), 'OSS built-in extensions:', builtInExtensions.map(e => e.name)); + fancyLog(ansiColors.blue('[mixin]'), 'Including built-in extensions:', include.map(e => e.name)); + fancyLog(ansiColors.blue('[mixin]'), 'Excluding built-in extensions:', exclude); + + builtInExtensions = builtInExtensions.filter(ext => !include.find(e => e.name === ext.name) && !exclude.find(name => name === ext.name)); + builtInExtensions = [...builtInExtensions, ...include]; + + fancyLog(ansiColors.blue('[mixin]'), 'Final built-in extensions:', builtInExtensions.map(e => e.name)); + } else { + fancyLog(ansiColors.blue('[mixin]'), 'Inheriting OSS built-in extensions', builtInExtensions.map(e => e.name)); + } + + return { ...ossProduct, ...o, builtInExtensions }; + })) + .pipe(productJsonFilter.restore) + .pipe(es.mapSync(function (f) { + fancyLog(ansiColors.blue('[mixin]'), f.relative, ansiColors.green('✔︎')); + return f; + })) + .pipe(vfs.dest('.')); +} + +main(); diff --git a/build/azure-pipelines/sql-product-compile.yml b/build/azure-pipelines/sql-product-compile.yml index c555b457d8..31d2f12a5f 100644 --- a/build/azure-pipelines/sql-product-compile.yml +++ b/build/azure-pipelines/sql-product-compile.yml @@ -74,7 +74,7 @@ steps: # inline small SVGs - script: | set -e - node build/azure-pipelines/mixin + node build/azure-pipelines/sql-mixin displayName: Mix in quality # Run these separately to avoid OOM errors on pipeline machines diff --git a/build/azure-pipelines/web/sql-product-build-web.yml b/build/azure-pipelines/web/sql-product-build-web.yml index b8ea9737c3..bfeef6daf2 100644 --- a/build/azure-pipelines/web/sql-product-build-web.yml +++ b/build/azure-pipelines/web/sql-product-build-web.yml @@ -75,7 +75,7 @@ steps: # inline small SVGs - script: | set -e - node build/azure-pipelines/mixin + node build/azure-pipelines/sql-mixin displayName: Mix in quality - script: | diff --git a/build/azure-pipelines/win32/sql-product-build-win32.yml b/build/azure-pipelines/win32/sql-product-build-win32.yml index 40c4e937c8..ec061aa30c 100644 --- a/build/azure-pipelines/win32/sql-product-build-win32.yml +++ b/build/azure-pipelines/win32/sql-product-build-win32.yml @@ -95,7 +95,7 @@ steps: - powershell: | . build/azure-pipelines/win32/exec.ps1 $ErrorActionPreference = "Stop" - exec { node build/azure-pipelines/mixin } + exec { node build/azure-pipelines/sql-mixin } displayName: Mix in quality - powershell: |