Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/azure-pipelines/darwin/product-build-darwin-test.yml193
-rw-r--r--build/azure-pipelines/darwin/product-build-darwin.yml59
-rw-r--r--build/azure-pipelines/linux/product-build-linux-client-test.yml234
-rw-r--r--build/azure-pipelines/linux/product-build-linux-client.yml104
-rw-r--r--build/azure-pipelines/product-build-pr.yml233
-rw-r--r--build/azure-pipelines/product-compile.yml33
-rw-r--r--build/azure-pipelines/win32/product-build-win32-test.yml225
-rw-r--r--build/azure-pipelines/win32/product-build-win32.yml83
8 files changed, 679 insertions, 485 deletions
diff --git a/build/azure-pipelines/darwin/product-build-darwin-test.yml b/build/azure-pipelines/darwin/product-build-darwin-test.yml
index 4c30c5e0b31..1094b41ca21 100644
--- a/build/azure-pipelines/darwin/product-build-darwin-test.yml
+++ b/build/azure-pipelines/darwin/product-build-darwin-test.yml
@@ -1,4 +1,6 @@
parameters:
+ - name: VSCODE_QUALITY
+ type: string
- name: VSCODE_RUN_UNIT_TESTS
type: boolean
- name: VSCODE_RUN_INTEGRATION_TESTS
@@ -14,25 +16,43 @@ steps:
displayName: Download Electron and Playwright
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- - script: |
- set -e
- ./scripts/test.sh --build --tfs "Unit Tests"
- displayName: Run unit tests (Electron)
- timeoutInMinutes: 15
-
- - ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- - script: |
- set -e
- yarn test-node --build
- displayName: Run unit tests (node.js)
- timeoutInMinutes: 15
-
- - ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- - script: |
- set -e
- DEBUG=*browser* yarn test-browser-no-install --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
- displayName: Run unit tests (Browser, Chromium & Webkit)
- timeoutInMinutes: 30
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ ./scripts/test.sh --tfs "Unit Tests"
+ displayName: Run unit tests (Electron)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ yarn test-node
+ displayName: Run unit tests (node.js)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ DEBUG=*browser* yarn test-browser-no-install --sequential --browser chromium --browser webkit --tfs "Browser Unit Tests"
+ displayName: Run unit tests (Browser, Chromium & Webkit)
+ timeoutInMinutes: 30
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ ./scripts/test.sh --build --tfs "Unit Tests"
+ displayName: Run unit tests (Electron)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ yarn test-node --build
+ displayName: Run unit tests (node.js)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ DEBUG=*browser* yarn test-browser-no-install --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
+ displayName: Run unit tests (Browser, Chromium & Webkit)
+ timeoutInMinutes: 30
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- script: |
@@ -57,38 +77,42 @@ steps:
compile-extension:vscode-test-resolver
displayName: Build integration tests
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - script: |
- # Figure out the full absolute path of the product we just built
- # including the remote server and configure the integration tests
- # to run with these builds instead of running out of sources.
- set -e
- APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
- APP_NAME="`ls $APP_ROOT | head -n 1`"
- INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
- ./scripts/test-integration.sh --build --tfs "Integration Tests"
- displayName: Run integration tests (Electron)
- timeoutInMinutes: 20
-
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - script: |
- set -e
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
- ./scripts/test-web-integration.sh --browser webkit
- displayName: Run integration tests (Browser, Webkit)
- timeoutInMinutes: 20
-
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - script: |
- set -e
- APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
- APP_NAME="`ls $APP_ROOT | head -n 1`"
- INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
- ./scripts/test-remote-integration.sh
- displayName: Run integration tests (Remote)
- timeoutInMinutes: 20
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ ./scripts/test-integration.sh --tfs "Integration Tests"
+ displayName: Run integration tests (Electron)
+ timeoutInMinutes: 20
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ # Figure out the full absolute path of the product we just built
+ # including the remote server and configure the integration tests
+ # to run with these builds instead of running out of sources.
+ set -e
+ APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
+ APP_NAME="`ls $APP_ROOT | head -n 1`"
+ INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
+ ./scripts/test-integration.sh --build --tfs "Integration Tests"
+ displayName: Run integration tests (Electron)
+ timeoutInMinutes: 20
+
+ - script: |
+ set -e
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
+ ./scripts/test-web-integration.sh --browser webkit
+ displayName: Run integration tests (Browser, Webkit)
+ timeoutInMinutes: 20
+
+ - script: |
+ set -e
+ APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
+ APP_NAME="`ls $APP_ROOT | head -n 1`"
+ INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
+ ./scripts/test-remote-integration.sh
+ displayName: Run integration tests (Remote)
+ timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- script: |
@@ -98,35 +122,44 @@ steps:
continueOnError: true
condition: succeededOrFailed()
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - script: |
- set -e
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
- yarn smoketest-no-compile --web --tracing --headless
- timeoutInMinutes: 20
- displayName: Run smoke tests (Browser, Chromium)
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ yarn --cwd test/smoke compile
+ displayName: Compile smoke tests
+
+ - script: |
+ set -e
+ yarn smoketest-no-compile --tracing
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Electron)
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
+ APP_NAME="`ls $APP_ROOT | head -n 1`"
+ yarn smoketest-no-compile --tracing --build "$APP_ROOT/$APP_NAME"
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Electron)
+
+ - script: |
+ set -e
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
+ yarn smoketest-no-compile --web --tracing --headless
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Browser, Chromium)
+
+ - script: |
+ set -e
+ yarn gulp compile-extension:vscode-test-resolver
+ APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
+ APP_NAME="`ls $APP_ROOT | head -n 1`"
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
+ yarn smoketest-no-compile --tracing --remote --build "$APP_ROOT/$APP_NAME"
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Remote)
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - script: |
- set -e
- APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
- APP_NAME="`ls $APP_ROOT | head -n 1`"
- yarn smoketest-no-compile --tracing --build "$APP_ROOT/$APP_NAME"
- timeoutInMinutes: 20
- displayName: Run smoke tests (Electron)
-
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - script: |
- set -e
- yarn gulp compile-extension:vscode-test-resolver
- APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
- APP_NAME="`ls $APP_ROOT | head -n 1`"
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
- yarn smoketest-no-compile --tracing --remote --build "$APP_ROOT/$APP_NAME"
- timeoutInMinutes: 20
- displayName: Run smoke tests (Remote)
-
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- script: |
set -e
ps -ef
@@ -148,7 +181,6 @@ steps:
continueOnError: true
condition: failed()
- - ${{ if or(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
# In order to properly symbolify above crash reports
# (if any), we need the compiled native modules too
- task: PublishPipelineArtifact@0
@@ -164,7 +196,6 @@ steps:
continueOnError: true
condition: failed()
- - ${{ if or(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
- task: PublishPipelineArtifact@0
inputs:
targetPath: .build/logs
diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml
index c9503f42a0a..eda79c53cf9 100644
--- a/build/azure-pipelines/darwin/product-build-darwin.yml
+++ b/build/azure-pipelines/darwin/product-build-darwin.yml
@@ -11,6 +11,11 @@ parameters:
type: boolean
steps:
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - checkout: self
+ fetchDepth: 1
+ retryCountOnTaskFailure: 3
+
- task: NodeTool@0
inputs:
versionSpec: "16.x"
@@ -23,16 +28,18 @@ steps:
KeyVaultName: vscode
SecretsFilter: "github-distro-mixin-password,macos-developer-certificate,macos-developer-certificate-key"
- - task: DownloadPipelineArtifact@2
- inputs:
- artifact: Compilation
- path: $(Build.ArtifactStagingDirectory)
- displayName: Download compilation output
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - task: DownloadPipelineArtifact@2
+ inputs:
+ artifact: Compilation
+ path: $(Build.ArtifactStagingDirectory)
+ displayName: Download compilation output
- - script: |
- set -e
- tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
- displayName: Extract compilation output
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
+ displayName: Extract compilation output
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
@@ -123,11 +130,12 @@ steps:
node build/azure-pipelines/mixin
displayName: Mix in quality
- - script: |
- set -e
- VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
- yarn gulp vscode-darwin-$(VSCODE_ARCH)-min-ci
- displayName: Build client
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
+ yarn gulp vscode-darwin-$(VSCODE_ARCH)-min-ci
+ displayName: Build client
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
@@ -135,17 +143,26 @@ steps:
node build/azure-pipelines/mixin --server
displayName: Mix in server quality
- - script: |
- set -e
- VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
- yarn gulp vscode-reh-darwin-$(VSCODE_ARCH)-min-ci
- VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
- yarn gulp vscode-reh-web-darwin-$(VSCODE_ARCH)-min-ci
- displayName: Build Server
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
+ yarn gulp vscode-reh-darwin-$(VSCODE_ARCH)-min-ci
+ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
+ yarn gulp vscode-reh-web-darwin-$(VSCODE_ARCH)-min-ci
+ displayName: Build Server
+
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
+ yarn gulp "transpile-client" "transpile-extensions"
+ displayName: Transpile
- ${{ if or(eq(parameters.VSCODE_RUN_UNIT_TESTS, true), eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
- template: product-build-darwin-test.yml
parameters:
+ VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}
VSCODE_RUN_UNIT_TESTS: ${{ parameters.VSCODE_RUN_UNIT_TESTS }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ parameters.VSCODE_RUN_INTEGRATION_TESTS }}
VSCODE_RUN_SMOKE_TESTS: ${{ parameters.VSCODE_RUN_SMOKE_TESTS }}
diff --git a/build/azure-pipelines/linux/product-build-linux-client-test.yml b/build/azure-pipelines/linux/product-build-linux-client-test.yml
index bc9aae42daf..31d477e93aa 100644
--- a/build/azure-pipelines/linux/product-build-linux-client-test.yml
+++ b/build/azure-pipelines/linux/product-build-linux-client-test.yml
@@ -1,4 +1,6 @@
parameters:
+ - name: VSCODE_QUALITY
+ type: string
- name: VSCODE_RUN_UNIT_TESTS
type: boolean
- name: VSCODE_RUN_INTEGRATION_TESTS
@@ -13,38 +15,68 @@ steps:
yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
displayName: Download Electron and Playwright
- - script: |
- set -e
- APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
- ELECTRON_ROOT=.build/electron
- sudo chown root $APP_ROOT/chrome-sandbox
- sudo chown root $ELECTRON_ROOT/chrome-sandbox
- sudo chmod 4755 $APP_ROOT/chrome-sandbox
- sudo chmod 4755 $ELECTRON_ROOT/chrome-sandbox
- stat $APP_ROOT/chrome-sandbox
- stat $ELECTRON_ROOT/chrome-sandbox
- displayName: Change setuid helper binary permission
-
- - ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
set -e
- ./scripts/test.sh --build --tfs "Unit Tests"
- displayName: Run unit tests (Electron)
- timeoutInMinutes: 15
+ sudo apt-get update
+ sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
+ sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
+ sudo chmod +x /etc/init.d/xvfb
+ sudo update-rc.d xvfb defaults
+ sudo service xvfb start
+ displayName: Setup build environment
- - ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
set -e
- yarn test-node --build
- displayName: Run unit tests (node.js)
- timeoutInMinutes: 15
+ APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
+ ELECTRON_ROOT=.build/electron
+ sudo chown root $APP_ROOT/chrome-sandbox
+ sudo chown root $ELECTRON_ROOT/chrome-sandbox
+ sudo chmod 4755 $APP_ROOT/chrome-sandbox
+ sudo chmod 4755 $ELECTRON_ROOT/chrome-sandbox
+ stat $APP_ROOT/chrome-sandbox
+ stat $ELECTRON_ROOT/chrome-sandbox
+ displayName: Change setuid helper binary permission
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- - script: |
- set -e
- DEBUG=*browser* yarn test-browser-no-install --build --browser chromium --tfs "Browser Unit Tests"
- displayName: Run unit tests (Browser, Chromium)
- timeoutInMinutes: 15
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests"
+ displayName: Run unit tests (Electron)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ yarn test-node
+ displayName: Run unit tests (node.js)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ DEBUG=*browser* yarn test-browser-no-install --browser chromium --tfs "Browser Unit Tests"
+ displayName: Run unit tests (Browser, Chromium)
+ timeoutInMinutes: 15
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ ./scripts/test.sh --build --tfs "Unit Tests"
+ displayName: Run unit tests (Electron)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ yarn test-node --build
+ displayName: Run unit tests (node.js)
+ timeoutInMinutes: 15
+
+ - script: |
+ set -e
+ DEBUG=*browser* yarn test-browser-no-install --build --browser chromium --tfs "Browser Unit Tests"
+ displayName: Run unit tests (Browser, Chromium)
+ timeoutInMinutes: 15
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- script: |
@@ -70,39 +102,57 @@ steps:
displayName: Build integration tests
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - script: |
- # Figure out the full absolute path of the product we just built
- # including the remote server and configure the integration tests
- # to run with these builds instead of running out of sources.
- set -e
- APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
- APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
- INTEGRATION_TEST_APP_NAME="$APP_NAME" \
- INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
- ./scripts/test-integration.sh --build --tfs "Integration Tests"
- displayName: Run integration tests (Electron)
- timeoutInMinutes: 20
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests"
+ displayName: Run integration tests (Electron)
+ timeoutInMinutes: 20
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - script: |
- set -e
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
- ./scripts/test-web-integration.sh --browser chromium
- displayName: Run integration tests (Browser, Chromium)
- timeoutInMinutes: 20
+ - script: |
+ set -e
+ ./scripts/test-web-integration.sh --browser chromium
+ displayName: Run integration tests (Browser, Chromium)
+ timeoutInMinutes: 20
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - script: |
- set -e
- APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
- APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
- INTEGRATION_TEST_APP_NAME="$APP_NAME" \
- INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
- ./scripts/test-remote-integration.sh
- displayName: Run integration tests (Remote)
- timeoutInMinutes: 20
+ - script: |
+ set -e
+ ./scripts/test-remote-integration.sh
+ displayName: Run integration tests (Remote)
+ timeoutInMinutes: 20
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ # Figure out the full absolute path of the product we just built
+ # including the remote server and configure the integration tests
+ # to run with these builds instead of running out of sources.
+ set -e
+ APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
+ APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
+ INTEGRATION_TEST_APP_NAME="$APP_NAME" \
+ INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
+ ./scripts/test-integration.sh --build --tfs "Integration Tests"
+ displayName: Run integration tests (Electron)
+ timeoutInMinutes: 20
+
+ - script: |
+ set -e
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
+ ./scripts/test-web-integration.sh --browser chromium
+ displayName: Run integration tests (Browser, Chromium)
+ timeoutInMinutes: 20
+
+ - script: |
+ set -e
+ APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
+ APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
+ INTEGRATION_TEST_APP_NAME="$APP_NAME" \
+ INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
+ ./scripts/test-remote-integration.sh
+ displayName: Run integration tests (Remote)
+ timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- script: |
@@ -114,33 +164,55 @@ steps:
continueOnError: true
condition: succeededOrFailed()
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - script: |
- set -e
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
- yarn smoketest-no-compile --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
- timeoutInMinutes: 20
- displayName: Run smoke tests (Browser, Chromium)
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ yarn --cwd test/smoke compile
+ displayName: Compile smoke tests
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - script: |
- set -e
- APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
- yarn smoketest-no-compile --tracing --build "$APP_PATH"
- timeoutInMinutes: 20
- displayName: Run smoke tests (Electron)
+ - script: |
+ set -e
+ yarn smoketest-no-compile --tracing
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Electron)
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - script: |
- set -e
- yarn gulp compile-extension:vscode-test-resolver
- APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
- yarn smoketest-no-compile --tracing --remote --build "$APP_PATH"
- timeoutInMinutes: 20
- displayName: Run smoke tests (Remote)
+ - script: |
+ set -e
+ yarn smoketest-no-compile --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Browser, Chromium)
+
+ - script: |
+ set -e
+ yarn gulp compile-extension:vscode-test-resolver
+ yarn smoketest-no-compile --remote --tracing
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Remote)
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
+ yarn smoketest-no-compile --tracing --build "$APP_PATH"
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Electron)
+
+ - script: |
+ set -e
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
+ yarn smoketest-no-compile --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Browser, Chromium)
+
+ - script: |
+ set -e
+ yarn gulp compile-extension:vscode-test-resolver
+ APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
+ yarn smoketest-no-compile --tracing --remote --build "$APP_PATH"
+ timeoutInMinutes: 20
+ displayName: Run smoke tests (Remote)
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- script: |
set -e
ps -ef
@@ -164,7 +236,6 @@ steps:
continueOnError: true
condition: failed()
- - ${{ if or(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
# In order to properly symbolify above crash reports
# (if any), we need the compiled native modules too
- task: PublishPipelineArtifact@0
@@ -180,7 +251,6 @@ steps:
continueOnError: true
condition: failed()
- - ${{ if or(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
- task: PublishPipelineArtifact@0
inputs:
targetPath: .build/logs
diff --git a/build/azure-pipelines/linux/product-build-linux-client.yml b/build/azure-pipelines/linux/product-build-linux-client.yml
index ed4d853230b..1f57307739a 100644
--- a/build/azure-pipelines/linux/product-build-linux-client.yml
+++ b/build/azure-pipelines/linux/product-build-linux-client.yml
@@ -11,6 +11,11 @@ parameters:
type: boolean
steps:
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - checkout: self
+ fetchDepth: 1
+ retryCountOnTaskFailure: 3
+
- task: NodeTool@0
inputs:
versionSpec: "16.x"
@@ -23,33 +28,37 @@ steps:
KeyVaultName: vscode
SecretsFilter: "github-distro-mixin-password,ESRP-PKI,esrp-aad-username,esrp-aad-password"
- - task: DownloadPipelineArtifact@2
- inputs:
- artifact: Compilation
- path: $(Build.ArtifactStagingDirectory)
- displayName: Download compilation output
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - task: DownloadPipelineArtifact@2
+ inputs:
+ artifact: Compilation
+ path: $(Build.ArtifactStagingDirectory)
+ displayName: Download compilation output
- - task: DownloadPipelineArtifact@2
- inputs:
- artifact: reh_node_modules-$(VSCODE_ARCH)
- path: $(Build.ArtifactStagingDirectory)
- displayName: Download server build dependencies
- condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'armhf'))
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - task: DownloadPipelineArtifact@2
+ inputs:
+ artifact: reh_node_modules-$(VSCODE_ARCH)
+ path: $(Build.ArtifactStagingDirectory)
+ displayName: Download server build dependencies
+ condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'armhf'))
- - script: |
- set -e
- # Start X server
- /etc/init.d/xvfb start
- # Start dbus session
- DBUS_LAUNCH_RESULT=$(sudo dbus-daemon --config-file=/usr/share/dbus-1/system.conf --print-address)
- echo "##vso[task.setvariable variable=DBUS_SESSION_BUS_ADDRESS]$DBUS_LAUNCH_RESULT"
- displayName: Setup system services
- condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ # Start X server
+ /etc/init.d/xvfb start
+ # Start dbus session
+ DBUS_LAUNCH_RESULT=$(sudo dbus-daemon --config-file=/usr/share/dbus-1/system.conf --print-address)
+ echo "##vso[task.setvariable variable=DBUS_SESSION_BUS_ADDRESS]$DBUS_LAUNCH_RESULT"
+ displayName: Setup system services
+ condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
- - script: |
- set -e
- tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
- displayName: Extract compilation output
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ tar -xzf $(Build.ArtifactStagingDirectory)/compilation.tar.gz
+ displayName: Extract compilation output
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
@@ -169,12 +178,13 @@ steps:
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
- - script: |
- set -e
- rm -rf remote/node_modules
- tar -xzf $(Build.ArtifactStagingDirectory)/reh_node_modules-$(VSCODE_ARCH).tar.gz --directory $(Build.SourcesDirectory)/remote
- displayName: Extract server node_modules output
- condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'armhf'))
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ rm -rf remote/node_modules
+ tar -xzf $(Build.ArtifactStagingDirectory)/reh_node_modules-$(VSCODE_ARCH).tar.gz --directory $(Build.SourcesDirectory)/remote
+ displayName: Extract server node_modules output
+ condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'armhf'))
- script: |
set -e
@@ -190,11 +200,12 @@ steps:
node build/azure-pipelines/mixin
displayName: Mix in quality
- - script: |
- set -e
- VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
- yarn gulp vscode-linux-$(VSCODE_ARCH)-min-ci
- displayName: Build
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
+ yarn gulp vscode-linux-$(VSCODE_ARCH)-min-ci
+ displayName: Build
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
@@ -202,17 +213,26 @@ steps:
node build/azure-pipelines/mixin --server
displayName: Mix in server quality
- - script: |
- set -e
- 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-reh-web-linux-$(VSCODE_ARCH)-min-ci
- displayName: Build Server
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ 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-reh-web-linux-$(VSCODE_ARCH)-min-ci
+ displayName: Build Server
+
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
+ yarn gulp "transpile-client" "transpile-extensions"
+ displayName: Transpile
- ${{ if or(eq(parameters.VSCODE_RUN_UNIT_TESTS, true), eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
- template: product-build-linux-client-test.yml
parameters:
+ VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}
VSCODE_RUN_UNIT_TESTS: ${{ parameters.VSCODE_RUN_UNIT_TESTS }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ parameters.VSCODE_RUN_INTEGRATION_TESTS }}
VSCODE_RUN_SMOKE_TESTS: ${{ parameters.VSCODE_RUN_SMOKE_TESTS }}
diff --git a/build/azure-pipelines/product-build-pr.yml b/build/azure-pipelines/product-build-pr.yml
index c8e23162f07..62eb8ca55cb 100644
--- a/build/azure-pipelines/product-build-pr.yml
+++ b/build/azure-pipelines/product-build-pr.yml
@@ -6,15 +6,6 @@ pr:
branches:
include: ["main", "release/*"]
-resources:
- containers:
- - container: centos7-devtoolset8-x64
- image: vscodehub.azurecr.io/vscode-linux-build-agent:centos7-devtoolset8-x64
- options: --user 0:0 --cap-add SYS_ADMIN
- - container: vscode-bionic-x64
- image: vscodehub.azurecr.io/vscode-linux-build-agent:bionic-x64
- options: --user 0:0 --cap-add SYS_ADMIN
-
variables:
- name: Codeql.SkipTaskAutoInjection
value: true
@@ -31,9 +22,11 @@ variables:
stages:
- stage: Compile
+ displayName: Compile & Hygiene
jobs:
- job: Compile
- pool: vscode-1es-vscode-linux-18.04
+ displayName: Compile & Hygiene
+ pool: vscode-1es-vscode-linux-20.04
variables:
VSCODE_ARCH: x64
steps:
@@ -41,74 +34,14 @@ stages:
parameters:
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
- - stage: LinuxServerDependencies
+ - stage: Test
dependsOn: []
- pool: vscode-1es-vscode-linux-18.04
- jobs:
- - job: x64
- container: centos7-devtoolset8-x64
- variables:
- VSCODE_ARCH: x64
- NPM_ARCH: x64
- steps:
- - template: linux/product-build-linux-server.yml
- parameters:
- VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
-
- - stage: Windows
- dependsOn:
- - Compile
- pool: vscode-1es-vscode-windows-2019
- jobs:
- - job: WindowsUnitTests
- displayName: Unit Tests
- timeoutInMinutes: 120
- variables:
- VSCODE_ARCH: x64
- steps:
- - template: win32/product-build-win32.yml
- parameters:
- VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
- VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
- VSCODE_RUN_UNIT_TESTS: true
- VSCODE_RUN_INTEGRATION_TESTS: false
- VSCODE_RUN_SMOKE_TESTS: false
- - job: WindowsIntegrationTests
- displayName: Integration Tests
- timeoutInMinutes: 120
- variables:
- VSCODE_ARCH: x64
- steps:
- - template: win32/product-build-win32.yml
- parameters:
- VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
- VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
- VSCODE_RUN_UNIT_TESTS: false
- VSCODE_RUN_INTEGRATION_TESTS: true
- VSCODE_RUN_SMOKE_TESTS: false
- - job: WindowsSmokeTests
- displayName: Smoke Tests
- timeoutInMinutes: 120
- variables:
- VSCODE_ARCH: x64
- steps:
- - template: win32/product-build-win32.yml
- parameters:
- VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
- VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
- VSCODE_RUN_UNIT_TESTS: false
- VSCODE_RUN_INTEGRATION_TESTS: false
- VSCODE_RUN_SMOKE_TESTS: true
-
- - stage: Linux
- dependsOn:
- - Compile
- - LinuxServerDependencies
- pool: vscode-1es-vscode-linux-18.04
jobs:
- job: Linuxx64UnitTest
- displayName: Unit Tests
- container: vscode-bionic-x64
+ displayName: Linux (Unit Tests)
+ pool: vscode-1es-vscode-linux-20.04
+ # container: vscode-bionic-x64
+ timeoutInMinutes: 60
variables:
VSCODE_ARCH: x64
NPM_ARCH: x64
@@ -122,8 +55,10 @@ stages:
VSCODE_RUN_INTEGRATION_TESTS: false
VSCODE_RUN_SMOKE_TESTS: false
- job: Linuxx64IntegrationTest
- displayName: Integration Tests
- container: vscode-bionic-x64
+ displayName: Linux (Integration Tests)
+ pool: vscode-1es-vscode-linux-20.04
+ # container: vscode-bionic-x64
+ timeoutInMinutes: 60
variables:
VSCODE_ARCH: x64
NPM_ARCH: x64
@@ -137,8 +72,10 @@ stages:
VSCODE_RUN_INTEGRATION_TESTS: true
VSCODE_RUN_SMOKE_TESTS: false
- job: Linuxx64SmokeTest
- displayName: Smoke Tests
- container: vscode-bionic-x64
+ displayName: Linux (Smoke Tests)
+ pool: vscode-1es-vscode-linux-20.04
+ # container: vscode-bionic-x64
+ timeoutInMinutes: 60
variables:
VSCODE_ARCH: x64
NPM_ARCH: x64
@@ -152,50 +89,94 @@ stages:
VSCODE_RUN_INTEGRATION_TESTS: false
VSCODE_RUN_SMOKE_TESTS: true
- - stage: macOS
- dependsOn:
- - Compile
- pool:
- vmImage: macOS-latest
- variables:
- BUILDSECMON_OPT_IN: true
- jobs:
- - job: macOSUnitTest
- displayName: Unit Tests
- timeoutInMinutes: 90
- variables:
- VSCODE_ARCH: x64
- steps:
- - template: darwin/product-build-darwin.yml
- parameters:
- VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
- VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
- VSCODE_RUN_UNIT_TESTS: true
- VSCODE_RUN_INTEGRATION_TESTS: false
- VSCODE_RUN_SMOKE_TESTS: false
- - job: macOSIntegrationTest
- displayName: Integration Tests
- timeoutInMinutes: 90
- variables:
- VSCODE_ARCH: x64
- steps:
- - template: darwin/product-build-darwin.yml
- parameters:
- VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
- VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
- VSCODE_RUN_UNIT_TESTS: false
- VSCODE_RUN_INTEGRATION_TESTS: true
- VSCODE_RUN_SMOKE_TESTS: false
- - job: macOSSmokeTest
- displayName: Smoke Tests
- timeoutInMinutes: 90
- variables:
- VSCODE_ARCH: x64
- steps:
- - template: darwin/product-build-darwin.yml
- parameters:
- VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
- VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
- VSCODE_RUN_UNIT_TESTS: false
- VSCODE_RUN_INTEGRATION_TESTS: false
- VSCODE_RUN_SMOKE_TESTS: true
+ # - job: macOSUnitTest
+ # displayName: macOS (Unit Tests)
+ # pool:
+ # vmImage: macOS-latest
+ # timeoutInMinutes: 60
+ # variables:
+ # BUILDSECMON_OPT_IN: true
+ # VSCODE_ARCH: x64
+ # steps:
+ # - template: darwin/product-build-darwin.yml
+ # parameters:
+ # VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
+ # VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
+ # VSCODE_RUN_UNIT_TESTS: true
+ # VSCODE_RUN_INTEGRATION_TESTS: false
+ # VSCODE_RUN_SMOKE_TESTS: false
+ # - job: macOSIntegrationTest
+ # displayName: macOS (Integration Tests)
+ # pool:
+ # vmImage: macOS-latest
+ # timeoutInMinutes: 60
+ # variables:
+ # BUILDSECMON_OPT_IN: true
+ # VSCODE_ARCH: x64
+ # steps:
+ # - template: darwin/product-build-darwin.yml
+ # parameters:
+ # VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
+ # VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
+ # VSCODE_RUN_UNIT_TESTS: false
+ # VSCODE_RUN_INTEGRATION_TESTS: true
+ # VSCODE_RUN_SMOKE_TESTS: false
+ # - job: macOSSmokeTest
+ # displayName: macOS (Smoke Tests)
+ # pool:
+ # vmImage: macOS-latest
+ # timeoutInMinutes: 60
+ # variables:
+ # BUILDSECMON_OPT_IN: true
+ # VSCODE_ARCH: x64
+ # steps:
+ # - template: darwin/product-build-darwin.yml
+ # parameters:
+ # VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
+ # VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
+ # VSCODE_RUN_UNIT_TESTS: false
+ # VSCODE_RUN_INTEGRATION_TESTS: false
+ # VSCODE_RUN_SMOKE_TESTS: true
+
+ # - job: WindowsUnitTests
+ # displayName: Windows (Unit Tests)
+ # pool: vscode-1es-vscode-windows-2019
+ # timeoutInMinutes: 60
+ # variables:
+ # VSCODE_ARCH: x64
+ # steps:
+ # - template: win32/product-build-win32.yml
+ # parameters:
+ # VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
+ # VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
+ # VSCODE_RUN_UNIT_TESTS: true
+ # VSCODE_RUN_INTEGRATION_TESTS: false
+ # VSCODE_RUN_SMOKE_TESTS: false
+ # - job: WindowsIntegrationTests
+ # displayName: Windows (Integration Tests)
+ # pool: vscode-1es-vscode-windows-2019
+ # timeoutInMinutes: 60
+ # variables:
+ # VSCODE_ARCH: x64
+ # steps:
+ # - template: win32/product-build-win32.yml
+ # parameters:
+ # VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
+ # VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
+ # VSCODE_RUN_UNIT_TESTS: false
+ # VSCODE_RUN_INTEGRATION_TESTS: true
+ # VSCODE_RUN_SMOKE_TESTS: false
+ # - job: WindowsSmokeTests
+ # displayName: Windows (Smoke Tests)
+ # pool: vscode-1es-vscode-windows-2019
+ # timeoutInMinutes: 60
+ # variables:
+ # VSCODE_ARCH: x64
+ # steps:
+ # - template: win32/product-build-win32.yml
+ # parameters:
+ # VSCODE_PUBLISH: ${{ variables.VSCODE_PUBLISH }}
+ # VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
+ # VSCODE_RUN_UNIT_TESTS: false
+ # VSCODE_RUN_INTEGRATION_TESTS: false
+ # VSCODE_RUN_SMOKE_TESTS: true
diff --git a/build/azure-pipelines/product-compile.yml b/build/azure-pipelines/product-compile.yml
index 1fd9b0441de..381d49ee75a 100644
--- a/build/azure-pipelines/product-compile.yml
+++ b/build/azure-pipelines/product-compile.yml
@@ -116,12 +116,13 @@ steps:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Compile & Hygiene
- - script: |
- set -e
- yarn --cwd test/smoke compile
- yarn --cwd test/integration/browser compile
- displayName: Compile test suites
- condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ yarn --cwd test/smoke compile
+ yarn --cwd test/integration/browser compile
+ displayName: Compile test suites
+ condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- task: AzureCLI@2
@@ -151,16 +152,18 @@ steps:
./build/azure-pipelines/common/extract-telemetry.sh
displayName: Extract Telemetry
- - script: |
- set -e
- tar -cz --ignore-failed-read -f $(Build.ArtifactStagingDirectory)/compilation.tar.gz .build out-* test/integration/browser/out test/smoke/out test/automation/out
- displayName: Compress compilation artifact
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - script: |
+ set -e
+ tar -cz --ignore-failed-read -f $(Build.ArtifactStagingDirectory)/compilation.tar.gz .build out-* test/integration/browser/out test/smoke/out test/automation/out
+ displayName: Compress compilation artifact
- - task: PublishPipelineArtifact@1
- inputs:
- targetPath: $(Build.ArtifactStagingDirectory)/compilation.tar.gz
- artifactName: Compilation
- displayName: Publish compilation artifact
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - task: PublishPipelineArtifact@1
+ inputs:
+ targetPath: $(Build.ArtifactStagingDirectory)/compilation.tar.gz
+ artifactName: Compilation
+ displayName: Publish compilation artifact
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- script: |
diff --git a/build/azure-pipelines/win32/product-build-win32-test.yml b/build/azure-pipelines/win32/product-build-win32-test.yml
index 9dc50f8bcc4..59c91cd2b13 100644
--- a/build/azure-pipelines/win32/product-build-win32-test.yml
+++ b/build/azure-pipelines/win32/product-build-win32-test.yml
@@ -1,4 +1,6 @@
parameters:
+ - name: VSCODE_QUALITY
+ type: string
- name: VSCODE_RUN_UNIT_TESTS
type: boolean
- name: VSCODE_RUN_INTEGRATION_TESTS
@@ -15,29 +17,51 @@ steps:
displayName: Download Electron and Playwright
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- exec { yarn electron $(VSCODE_ARCH) }
- exec { .\scripts\test.bat --build --tfs "Unit Tests" }
- displayName: Run unit tests (Electron)
- timeoutInMinutes: 15
-
- - ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- exec { yarn test-node --build }
- displayName: Run unit tests (node.js)
- timeoutInMinutes: 15
-
- - ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- exec { yarn test-browser-no-install --sequential --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
- displayName: Run unit tests (Browser, Chromium & Firefox)
- timeoutInMinutes: 20
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { yarn electron $(VSCODE_ARCH) }
+ exec { .\scripts\test.bat --tfs "Unit Tests" }
+ displayName: Run unit tests (Electron)
+ timeoutInMinutes: 15
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { yarn test-node }
+ displayName: Run unit tests (node.js)
+ timeoutInMinutes: 15
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { node test/unit/browser/index.js --sequential --browser chromium --browser firefox --tfs "Browser Unit Tests" }
+ displayName: Run unit tests (Browser, Chromium & Firefox)
+ timeoutInMinutes: 20
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { yarn electron $(VSCODE_ARCH) }
+ exec { .\scripts\test.bat --build --tfs "Unit Tests" }
+ displayName: Run unit tests (Electron)
+ timeoutInMinutes: 15
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { yarn test-node --build }
+ displayName: Run unit tests (node.js)
+ timeoutInMinutes: 15
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { yarn test-browser-no-install --sequential --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
+ displayName: Run unit tests (Browser, Chromium & Firefox)
+ timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- powershell: |
@@ -64,38 +88,58 @@ steps:
}
displayName: Build integration tests
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - powershell: |
- # Figure out the full absolute path of the product we just built
- # including the remote server and configure the integration tests
- # to run with these builds instead of running out of sources.
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
- $AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
- $AppNameShort = $AppProductJson.nameShort
- exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\scripts\test-integration.bat --build --tfs "Integration Tests" }
- displayName: Run integration tests (Electron)
- timeoutInMinutes: 20
-
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\scripts\test-web-integration.bat --browser firefox }
- displayName: Run integration tests (Browser, Firefox)
- timeoutInMinutes: 20
-
- - ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
- $AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
- $AppNameShort = $AppProductJson.nameShort
- exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\scripts\test-remote-integration.bat }
- displayName: Run integration tests (Remote)
- timeoutInMinutes: 20
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { .\scripts\test-integration.bat --tfs "Integration Tests" }
+ displayName: Run integration tests (Electron)
+ timeoutInMinutes: 20
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { .\scripts\test-web-integration.bat --browser firefox }
+ displayName: Run integration tests (Browser, Firefox)
+ timeoutInMinutes: 20
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { .\scripts\test-remote-integration.bat }
+ displayName: Run integration tests (Remote)
+ timeoutInMinutes: 20
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ # Figure out the full absolute path of the product we just built
+ # including the remote server and configure the integration tests
+ # to run with these builds instead of running out of sources.
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
+ $AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
+ $AppNameShort = $AppProductJson.nameShort
+ exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\scripts\test-integration.bat --build --tfs "Integration Tests" }
+ displayName: Run integration tests (Electron)
+ timeoutInMinutes: 20
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\scripts\test-web-integration.bat --browser firefox }
+ displayName: Run integration tests (Browser, Firefox)
+ timeoutInMinutes: 20
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
+ $AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
+ $AppNameShort = $AppProductJson.nameShort
+ exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\scripts\test-remote-integration.bat }
+ displayName: Run integration tests (Remote)
+ timeoutInMinutes: 20
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- powershell: |
@@ -105,36 +149,47 @@ steps:
continueOnError: true
condition: succeededOrFailed()
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"
- exec { yarn smoketest-no-compile --web --tracing --headless }
- displayName: Run smoke tests (Browser, Chromium)
- timeoutInMinutes: 20
-
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
- exec { yarn smoketest-no-compile --tracing --build "$AppRoot" }
- displayName: Run smoke tests (Electron)
- timeoutInMinutes: 20
-
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
- $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"
- exec { yarn gulp compile-extension:vscode-test-resolver }
- exec { yarn smoketest-no-compile --tracing --remote --build "$AppRoot" }
- displayName: Run smoke tests (Remote)
- timeoutInMinutes: 20
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { yarn --cwd test/smoke compile }
+ displayName: Compile smoke tests
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { yarn smoketest-no-compile --tracing }
+ displayName: Run smoke tests (Electron)
+ timeoutInMinutes: 20
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
+ exec { yarn smoketest-no-compile --tracing --build "$AppRoot" }
+ displayName: Run smoke tests (Electron)
+ timeoutInMinutes: 20
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"
+ exec { yarn smoketest-no-compile --web --tracing --headless }
+ displayName: Run smoke tests (Browser, Chromium)
+ timeoutInMinutes: 20
+
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
+ $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"
+ exec { yarn gulp compile-extension:vscode-test-resolver }
+ exec { yarn smoketest-no-compile --tracing --remote --build "$AppRoot" }
+ displayName: Run smoke tests (Remote)
+ timeoutInMinutes: 20
- - ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
exec {.\build\azure-pipelines\win32\listprocesses.bat }
@@ -156,7 +211,6 @@ steps:
continueOnError: true
condition: failed()
- - ${{ if or(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
# In order to properly symbolify above crash reports
# (if any), we need the compiled native modules too
- task: PublishPipelineArtifact@0
@@ -172,7 +226,6 @@ steps:
continueOnError: true
condition: failed()
- - ${{ if or(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
- task: PublishPipelineArtifact@0
inputs:
targetPath: .build\logs
diff --git a/build/azure-pipelines/win32/product-build-win32.yml b/build/azure-pipelines/win32/product-build-win32.yml
index 65504f03ecd..41f0a8da8c2 100644
--- a/build/azure-pipelines/win32/product-build-win32.yml
+++ b/build/azure-pipelines/win32/product-build-win32.yml
@@ -11,6 +11,11 @@ parameters:
type: boolean
steps:
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - checkout: self
+ fetchDepth: 1
+ retryCountOnTaskFailure: 3
+
- task: NodeTool@0
inputs:
versionSpec: "16.x"
@@ -28,17 +33,19 @@ steps:
KeyVaultName: vscode
SecretsFilter: "github-distro-mixin-password,ESRP-PKI,esrp-aad-username,esrp-aad-password"
- - task: DownloadPipelineArtifact@2
- inputs:
- artifact: Compilation
- path: $(Build.ArtifactStagingDirectory)
- displayName: Download compilation output
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - task: DownloadPipelineArtifact@2
+ inputs:
+ artifact: Compilation
+ path: $(Build.ArtifactStagingDirectory)
+ displayName: Download compilation output
- - task: ExtractFiles@1
- displayName: Extract compilation output
- inputs:
- archiveFilePatterns: "$(Build.ArtifactStagingDirectory)/compilation.tar.gz"
- cleanDestinationFolder: false
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - task: ExtractFiles@1
+ displayName: Extract compilation output
+ inputs:
+ archiveFilePatterns: "$(Build.ArtifactStagingDirectory)/compilation.tar.gz"
+ cleanDestinationFolder: false
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
- powershell: |
@@ -69,6 +76,7 @@ steps:
displayName: Merge distro
- powershell: |
+ if (!(Test-Path ".build")) { New-Item -Path ".build" -ItemType Directory }
"$(VSCODE_ARCH)" | Out-File -Encoding ascii -NoNewLine .build\arch
"$env:ENABLE_TERRAPIN" | Out-File -Encoding ascii -NoNewLine .build\terrapin
node build/azure-pipelines/common/computeNodeModulesCacheKey.js > .build/yarnlockhash
@@ -127,20 +135,29 @@ steps:
exec { node build/azure-pipelines/mixin }
displayName: Mix in quality
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- exec { node build\lib\policies }
- displayName: Generate Group Policy definitions
- condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'))
+ - ${{ if eq(parameters.VSCODE_PUBLISH, true) }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ exec { node build\lib\policies }
+ displayName: Generate Group Policy definitions
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- $env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
- exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-min-ci" }
- echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH)"
- displayName: Build
+ - ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
+ exec { yarn gulp "transpile-client" "transpile-extensions" }
+ displayName: Transpile
+
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
+ exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-min-ci" }
+ echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH)"
+ displayName: Build
- ${{ if eq(parameters.VSCODE_PUBLISH, true) }}:
- powershell: |
@@ -158,19 +175,21 @@ steps:
displayName: Mix in quality
condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64'))
- - powershell: |
- . build/azure-pipelines/win32/exec.ps1
- $ErrorActionPreference = "Stop"
- $env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
- exec { yarn gulp "vscode-reh-win32-$(VSCODE_ARCH)-min-ci" }
- exec { yarn gulp "vscode-reh-web-win32-$(VSCODE_ARCH)-min-ci" }
- echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(CodeSigningFolderPath),$(agent.builddirectory)/vscode-reh-win32-$(VSCODE_ARCH)"
- displayName: Build Server
- condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64'))
+ - ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
+ - powershell: |
+ . build/azure-pipelines/win32/exec.ps1
+ $ErrorActionPreference = "Stop"
+ $env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
+ exec { yarn gulp "vscode-reh-win32-$(VSCODE_ARCH)-min-ci" }
+ exec { yarn gulp "vscode-reh-web-win32-$(VSCODE_ARCH)-min-ci" }
+ echo "##vso[task.setvariable variable=CodeSigningFolderPath]$(CodeSigningFolderPath),$(agent.builddirectory)/vscode-reh-win32-$(VSCODE_ARCH)"
+ displayName: Build Server
+ condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64'))
- ${{ if or(eq(parameters.VSCODE_RUN_UNIT_TESTS, true), eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
- template: product-build-win32-test.yml
parameters:
+ VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}
VSCODE_RUN_UNIT_TESTS: ${{ parameters.VSCODE_RUN_UNIT_TESTS }}
VSCODE_RUN_INTEGRATION_TESTS: ${{ parameters.VSCODE_RUN_INTEGRATION_TESTS }}
VSCODE_RUN_SMOKE_TESTS: ${{ parameters.VSCODE_RUN_SMOKE_TESTS }}