mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
Engineering - Exploration to run tests in parallel (#149698)
This commit is contained in:
parent
688c802459
commit
d1f882f635
|
@ -1,6 +1,15 @@
|
||||||
parameters:
|
parameters:
|
||||||
- name: VSCODE_QUALITY
|
- name: VSCODE_QUALITY
|
||||||
type: string
|
type: string
|
||||||
|
- name: VSCODE_RUN_UNIT_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- name: VSCODE_RUN_INTEGRATION_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- name: VSCODE_RUN_SMOKE_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: NodeTool@0
|
- task: NodeTool@0
|
||||||
|
@ -165,91 +174,126 @@ steps:
|
||||||
VSCODE_ARCH=$(VSCODE_ARCH) DEBUG=electron-osx-sign* node build/darwin/sign.js
|
VSCODE_ARCH=$(VSCODE_ARCH) DEBUG=electron-osx-sign* node build/darwin/sign.js
|
||||||
displayName: Set Hardened Entitlements
|
displayName: Set Hardened Entitlements
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
./scripts/test.sh --build --tfs "Unit Tests"
|
set -e
|
||||||
displayName: Run unit tests (Electron)
|
./scripts/test.sh --build --tfs "Unit Tests"
|
||||||
timeoutInMinutes: 15
|
displayName: Run unit tests (Electron)
|
||||||
|
timeoutInMinutes: 15
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
yarn test-node --build
|
set -e
|
||||||
displayName: Run unit tests (node.js)
|
yarn test-node --build
|
||||||
timeoutInMinutes: 15
|
displayName: Run unit tests (node.js)
|
||||||
|
timeoutInMinutes: 15
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
DEBUG=*browser* yarn test-browser-no-install --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
|
set -e
|
||||||
displayName: Run unit tests (Browser, Chromium & Webkit)
|
DEBUG=*browser* yarn test-browser-no-install --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
|
||||||
timeoutInMinutes: 30
|
displayName: Run unit tests (Browser, Chromium & Webkit)
|
||||||
|
timeoutInMinutes: 30
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
# Figure out the full absolute path of the product we just built
|
- script: |
|
||||||
# including the remote server and configure the integration tests
|
set -e
|
||||||
# to run with these builds instead of running out of sources.
|
yarn gulp \
|
||||||
set -e
|
compile-extension:css-language-features-server \
|
||||||
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
compile-extension:emmet \
|
||||||
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
compile-extension:git \
|
||||||
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
|
compile-extension:github-authentication \
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
|
compile-extension:html-language-features-server \
|
||||||
./scripts/test-integration.sh --build --tfs "Integration Tests"
|
compile-extension:ipynb \
|
||||||
displayName: Run integration tests (Electron)
|
compile-extension:json-language-features-server \
|
||||||
timeoutInMinutes: 20
|
compile-extension:markdown-language-features \
|
||||||
|
compile-extension-media \
|
||||||
|
compile-extension:microsoft-authentication \
|
||||||
|
compile-extension:typescript-language-features \
|
||||||
|
compile-extension:vscode-api-tests \
|
||||||
|
compile-extension:vscode-colorize-tests \
|
||||||
|
compile-extension:vscode-custom-editor-tests \
|
||||||
|
compile-extension:vscode-notebook-tests \
|
||||||
|
compile-extension:vscode-test-resolver
|
||||||
|
displayName: Build integration tests
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
|
# Figure out the full absolute path of the product we just built
|
||||||
./scripts/test-web-integration.sh --browser webkit
|
# including the remote server and configure the integration tests
|
||||||
displayName: Run integration tests (Browser, Webkit)
|
# to run with these builds instead of running out of sources.
|
||||||
timeoutInMinutes: 20
|
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: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
set -e
|
||||||
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
|
||||||
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME/Contents/MacOS/Electron" \
|
./scripts/test-web-integration.sh --browser webkit
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
|
displayName: Run integration tests (Browser, Webkit)
|
||||||
./scripts/test-remote-integration.sh
|
timeoutInMinutes: 20
|
||||||
displayName: Run integration tests (Remote)
|
|
||||||
timeoutInMinutes: 20
|
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
ps -ef
|
set -e
|
||||||
displayName: Diagnostics before smoke test run
|
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
||||||
continueOnError: true
|
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
||||||
condition: succeededOrFailed()
|
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
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
|
set -e
|
||||||
yarn smoketest-no-compile --web --tracing --headless
|
ps -ef
|
||||||
timeoutInMinutes: 20
|
displayName: Diagnostics before smoke test run
|
||||||
displayName: Run smoke tests (Browser, Chromium)
|
continueOnError: true
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
set -e
|
||||||
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin-$(VSCODE_ARCH)" \
|
||||||
yarn smoketest-no-compile --tracing --build "$APP_ROOT/$APP_NAME"
|
yarn smoketest-no-compile --web --tracing --headless
|
||||||
timeoutInMinutes: 20
|
timeoutInMinutes: 20
|
||||||
displayName: Run smoke tests (Electron)
|
displayName: Run smoke tests (Browser, Chromium)
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
set -e
|
||||||
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-darwin-$(VSCODE_ARCH)" \
|
APP_NAME="`ls $APP_ROOT | head -n 1`"
|
||||||
yarn smoketest-no-compile --tracing --remote --build "$APP_ROOT/$APP_NAME"
|
yarn smoketest-no-compile --tracing --build "$APP_ROOT/$APP_NAME"
|
||||||
timeoutInMinutes: 20
|
timeoutInMinutes: 20
|
||||||
displayName: Run smoke tests (Remote)
|
displayName: Run smoke tests (Electron)
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
ps -ef
|
set -e
|
||||||
displayName: Diagnostics after smoke test run
|
yarn gulp compile-extension:vscode-test-resolver
|
||||||
continueOnError: true
|
APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH)
|
||||||
condition: succeededOrFailed()
|
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
|
||||||
|
displayName: Diagnostics after smoke test run
|
||||||
|
continueOnError: true
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@0
|
- task: PublishPipelineArtifact@0
|
||||||
inputs:
|
inputs:
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
parameters:
|
parameters:
|
||||||
- name: VSCODE_QUALITY
|
- name: VSCODE_QUALITY
|
||||||
type: string
|
type: string
|
||||||
|
- name: VSCODE_RUN_UNIT_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- name: VSCODE_RUN_INTEGRATION_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- name: VSCODE_RUN_SMOKE_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: NodeTool@0
|
- task: NodeTool@0
|
||||||
|
@ -221,104 +230,139 @@ steps:
|
||||||
stat $ELECTRON_ROOT/chrome-sandbox
|
stat $ELECTRON_ROOT/chrome-sandbox
|
||||||
displayName: Change setuid helper binary permission
|
displayName: Change setuid helper binary permission
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
./scripts/test.sh --build --tfs "Unit Tests"
|
set -e
|
||||||
displayName: Run unit tests (Electron)
|
./scripts/test.sh --build --tfs "Unit Tests"
|
||||||
timeoutInMinutes: 15
|
displayName: Run unit tests (Electron)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
timeoutInMinutes: 15
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
yarn test-node --build
|
set -e
|
||||||
displayName: Run unit tests (node.js)
|
yarn test-node --build
|
||||||
timeoutInMinutes: 15
|
displayName: Run unit tests (node.js)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
timeoutInMinutes: 15
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
DEBUG=*browser* yarn test-browser-no-install --build --browser chromium --tfs "Browser Unit Tests"
|
set -e
|
||||||
displayName: Run unit tests (Browser, Chromium)
|
DEBUG=*browser* yarn test-browser-no-install --build --browser chromium --tfs "Browser Unit Tests"
|
||||||
timeoutInMinutes: 15
|
displayName: Run unit tests (Browser, Chromium)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
timeoutInMinutes: 15
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
# Figure out the full absolute path of the product we just built
|
- script: |
|
||||||
# including the remote server and configure the integration tests
|
set -e
|
||||||
# to run with these builds instead of running out of sources.
|
yarn gulp \
|
||||||
set -e
|
compile-extension:css-language-features-server \
|
||||||
APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
|
compile-extension:emmet \
|
||||||
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
|
compile-extension:git \
|
||||||
INTEGRATION_TEST_APP_NAME="$APP_NAME" \
|
compile-extension:github-authentication \
|
||||||
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
|
compile-extension:html-language-features-server \
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
|
compile-extension:ipynb \
|
||||||
./scripts/test-integration.sh --build --tfs "Integration Tests"
|
compile-extension:json-language-features-server \
|
||||||
displayName: Run integration tests (Electron)
|
compile-extension:markdown-language-features \
|
||||||
timeoutInMinutes: 20
|
compile-extension-media \
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
compile-extension:microsoft-authentication \
|
||||||
|
compile-extension:typescript-language-features \
|
||||||
|
compile-extension:vscode-api-tests \
|
||||||
|
compile-extension:vscode-colorize-tests \
|
||||||
|
compile-extension:vscode-custom-editor-tests \
|
||||||
|
compile-extension:vscode-notebook-tests \
|
||||||
|
compile-extension:vscode-test-resolver
|
||||||
|
displayName: Build integration tests
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
|
# Figure out the full absolute path of the product we just built
|
||||||
./scripts/test-web-integration.sh --browser chromium
|
# including the remote server and configure the integration tests
|
||||||
displayName: Run integration tests (Browser, Chromium)
|
# to run with these builds instead of running out of sources.
|
||||||
timeoutInMinutes: 20
|
set -e
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
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
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
|
set -e
|
||||||
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
|
||||||
INTEGRATION_TEST_APP_NAME="$APP_NAME" \
|
./scripts/test-web-integration.sh --browser chromium
|
||||||
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
|
displayName: Run integration tests (Browser, Chromium)
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
|
timeoutInMinutes: 20
|
||||||
./scripts/test-remote-integration.sh
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
displayName: Run integration tests (Remote)
|
|
||||||
timeoutInMinutes: 20
|
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
ps -ef
|
set -e
|
||||||
cat /proc/sys/fs/inotify/max_user_watches
|
APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
|
||||||
lsof | wc -l
|
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
|
||||||
displayName: Diagnostics before smoke test run (processes, max_user_watches, number of opened file handles)
|
INTEGRATION_TEST_APP_NAME="$APP_NAME" \
|
||||||
continueOnError: true
|
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
|
||||||
condition: and(succeededOrFailed(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
|
||||||
|
./scripts/test-remote-integration.sh
|
||||||
|
displayName: Run integration tests (Remote)
|
||||||
|
timeoutInMinutes: 20
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
|
set -e
|
||||||
yarn smoketest-no-compile --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
|
ps -ef
|
||||||
timeoutInMinutes: 20
|
cat /proc/sys/fs/inotify/max_user_watches
|
||||||
displayName: Run smoke tests (Browser, Chromium)
|
lsof | wc -l
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
displayName: Diagnostics before smoke test run (processes, max_user_watches, number of opened file handles)
|
||||||
|
continueOnError: true
|
||||||
|
condition: and(succeededOrFailed(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
|
set -e
|
||||||
yarn smoketest-no-compile --tracing --build "$APP_PATH"
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
|
||||||
timeoutInMinutes: 20
|
yarn smoketest-no-compile --web --tracing --headless --electronArgs="--disable-dev-shm-usage"
|
||||||
displayName: Run smoke tests (Electron)
|
timeoutInMinutes: 20
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
displayName: Run smoke tests (Browser, Chromium)
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
|
set -e
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
|
APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
|
||||||
yarn smoketest-no-compile --tracing --remote --build "$APP_PATH"
|
yarn smoketest-no-compile --tracing --build "$APP_PATH"
|
||||||
timeoutInMinutes: 20
|
timeoutInMinutes: 20
|
||||||
displayName: Run smoke tests (Remote)
|
displayName: Run smoke tests (Electron)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
set -e
|
- script: |
|
||||||
ps -ef
|
set -e
|
||||||
cat /proc/sys/fs/inotify/max_user_watches
|
yarn gulp compile-extension:vscode-test-resolver
|
||||||
lsof | wc -l
|
APP_PATH=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
|
||||||
displayName: Diagnostics after smoke test run (processes, max_user_watches, number of opened file handles)
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
|
||||||
continueOnError: true
|
yarn smoketest-no-compile --tracing --remote --build "$APP_PATH"
|
||||||
condition: and(succeededOrFailed(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
timeoutInMinutes: 20
|
||||||
|
displayName: Run smoke tests (Remote)
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
|
- script: |
|
||||||
|
set -e
|
||||||
|
ps -ef
|
||||||
|
cat /proc/sys/fs/inotify/max_user_watches
|
||||||
|
lsof | wc -l
|
||||||
|
displayName: Diagnostics after smoke test run (processes, max_user_watches, number of opened file handles)
|
||||||
|
continueOnError: true
|
||||||
|
condition: and(succeededOrFailed(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@0
|
- task: PublishPipelineArtifact@0
|
||||||
inputs:
|
inputs:
|
||||||
|
|
|
@ -60,7 +60,8 @@ stages:
|
||||||
- Compile
|
- Compile
|
||||||
pool: vscode-1es-vscode-windows-2019
|
pool: vscode-1es-vscode-windows-2019
|
||||||
jobs:
|
jobs:
|
||||||
- job: Windows
|
- job: WindowsUnitTests
|
||||||
|
displayName: Unit Tests
|
||||||
timeoutInMinutes: 120
|
timeoutInMinutes: 120
|
||||||
variables:
|
variables:
|
||||||
VSCODE_ARCH: x64
|
VSCODE_ARCH: x64
|
||||||
|
@ -68,6 +69,33 @@ stages:
|
||||||
- template: win32/product-build-win32.yml
|
- template: win32/product-build-win32.yml
|
||||||
parameters:
|
parameters:
|
||||||
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
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_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_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
||||||
|
VSCODE_RUN_UNIT_TESTS: false
|
||||||
|
VSCODE_RUN_INTEGRATION_TESTS: false
|
||||||
|
VSCODE_RUN_SMOKE_TESTS: true
|
||||||
|
|
||||||
- stage: Linux
|
- stage: Linux
|
||||||
dependsOn:
|
dependsOn:
|
||||||
|
@ -75,7 +103,8 @@ stages:
|
||||||
- LinuxServerDependencies
|
- LinuxServerDependencies
|
||||||
pool: vscode-1es-vscode-linux-18.04
|
pool: vscode-1es-vscode-linux-18.04
|
||||||
jobs:
|
jobs:
|
||||||
- job: Linuxx64
|
- job: Linuxx64UnitTest
|
||||||
|
displayName: Unit Tests
|
||||||
container: vscode-bionic-x64
|
container: vscode-bionic-x64
|
||||||
variables:
|
variables:
|
||||||
VSCODE_ARCH: x64
|
VSCODE_ARCH: x64
|
||||||
|
@ -85,6 +114,37 @@ stages:
|
||||||
- template: linux/product-build-linux-client.yml
|
- template: linux/product-build-linux-client.yml
|
||||||
parameters:
|
parameters:
|
||||||
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
||||||
|
VSCODE_RUN_UNIT_TESTS: true
|
||||||
|
VSCODE_RUN_INTEGRATION_TESTS: false
|
||||||
|
VSCODE_RUN_SMOKE_TESTS: false
|
||||||
|
- job: Linuxx64IntegrationTest
|
||||||
|
displayName: Integration Tests
|
||||||
|
container: vscode-bionic-x64
|
||||||
|
variables:
|
||||||
|
VSCODE_ARCH: x64
|
||||||
|
NPM_ARCH: x64
|
||||||
|
DISPLAY: ":10"
|
||||||
|
steps:
|
||||||
|
- template: linux/product-build-linux-client.yml
|
||||||
|
parameters:
|
||||||
|
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
||||||
|
VSCODE_RUN_UNIT_TESTS: false
|
||||||
|
VSCODE_RUN_INTEGRATION_TESTS: true
|
||||||
|
VSCODE_RUN_SMOKE_TESTS: false
|
||||||
|
- job: Linuxx64SmokeTest
|
||||||
|
displayName: Smoke Tests
|
||||||
|
container: vscode-bionic-x64
|
||||||
|
variables:
|
||||||
|
VSCODE_ARCH: x64
|
||||||
|
NPM_ARCH: x64
|
||||||
|
DISPLAY: ":10"
|
||||||
|
steps:
|
||||||
|
- template: linux/product-build-linux-client.yml
|
||||||
|
parameters:
|
||||||
|
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
||||||
|
VSCODE_RUN_UNIT_TESTS: false
|
||||||
|
VSCODE_RUN_INTEGRATION_TESTS: false
|
||||||
|
VSCODE_RUN_SMOKE_TESTS: true
|
||||||
|
|
||||||
- stage: macOS
|
- stage: macOS
|
||||||
dependsOn:
|
dependsOn:
|
||||||
|
@ -94,7 +154,8 @@ stages:
|
||||||
variables:
|
variables:
|
||||||
BUILDSECMON_OPT_IN: true
|
BUILDSECMON_OPT_IN: true
|
||||||
jobs:
|
jobs:
|
||||||
- job: macOSTest
|
- job: macOSUnitTest
|
||||||
|
displayName: Unit Tests
|
||||||
timeoutInMinutes: 90
|
timeoutInMinutes: 90
|
||||||
variables:
|
variables:
|
||||||
VSCODE_ARCH: x64
|
VSCODE_ARCH: x64
|
||||||
|
@ -102,3 +163,30 @@ stages:
|
||||||
- template: darwin/product-build-darwin-test.yml
|
- template: darwin/product-build-darwin-test.yml
|
||||||
parameters:
|
parameters:
|
||||||
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
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-test.yml
|
||||||
|
parameters:
|
||||||
|
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-test.yml
|
||||||
|
parameters:
|
||||||
|
VSCODE_QUALITY: ${{ variables.VSCODE_QUALITY }}
|
||||||
|
VSCODE_RUN_UNIT_TESTS: false
|
||||||
|
VSCODE_RUN_INTEGRATION_TESTS: false
|
||||||
|
VSCODE_RUN_SMOKE_TESTS: true
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
parameters:
|
parameters:
|
||||||
- name: VSCODE_QUALITY
|
- name: VSCODE_QUALITY
|
||||||
type: string
|
type: string
|
||||||
|
- name: VSCODE_RUN_UNIT_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- name: VSCODE_RUN_INTEGRATION_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- name: VSCODE_RUN_SMOKE_TESTS
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: NodeTool@0
|
- task: NodeTool@0
|
||||||
|
@ -184,105 +193,142 @@ steps:
|
||||||
displayName: Download Playwright
|
displayName: Download Playwright
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
exec { yarn electron $(VSCODE_ARCH) }
|
$ErrorActionPreference = "Stop"
|
||||||
exec { .\scripts\test.bat --build --tfs "Unit Tests" }
|
exec { yarn electron $(VSCODE_ARCH) }
|
||||||
displayName: Run unit tests (Electron)
|
exec { .\scripts\test.bat --build --tfs "Unit Tests" }
|
||||||
timeoutInMinutes: 15
|
displayName: Run unit tests (Electron)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
timeoutInMinutes: 15
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
exec { yarn test-node --build }
|
$ErrorActionPreference = "Stop"
|
||||||
displayName: Run unit tests (node.js)
|
exec { yarn test-node --build }
|
||||||
timeoutInMinutes: 15
|
displayName: Run unit tests (node.js)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
timeoutInMinutes: 15
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
exec { yarn test-browser-no-install --sequential --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
|
$ErrorActionPreference = "Stop"
|
||||||
displayName: Run unit tests (Browser, Chromium & Firefox)
|
exec { yarn test-browser-no-install --sequential --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
|
||||||
timeoutInMinutes: 20
|
displayName: Run unit tests (Browser, Chromium & Firefox)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
timeoutInMinutes: 20
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
# Figure out the full absolute path of the product we just built
|
- powershell: |
|
||||||
# including the remote server and configure the integration tests
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
# to run with these builds instead of running out of sources.
|
$ErrorActionPreference = "Stop"
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
exec { yarn gulp `
|
||||||
$ErrorActionPreference = "Stop"
|
compile-extension:css-language-features-server `
|
||||||
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
|
compile-extension:emmet `
|
||||||
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
|
compile-extension:git `
|
||||||
$AppNameShort = $AppProductJson.nameShort
|
compile-extension:github-authentication `
|
||||||
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" }
|
compile-extension:html-language-features-server `
|
||||||
displayName: Run integration tests (Electron)
|
compile-extension:ipynb `
|
||||||
timeoutInMinutes: 20
|
compile-extension:json-language-features-server `
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
compile-extension:markdown-language-features `
|
||||||
|
compile-extension-media `
|
||||||
|
compile-extension:microsoft-authentication `
|
||||||
|
compile-extension:typescript-language-features `
|
||||||
|
compile-extension:vscode-api-tests `
|
||||||
|
compile-extension:vscode-colorize-tests `
|
||||||
|
compile-extension:vscode-custom-editor-tests `
|
||||||
|
compile-extension:vscode-notebook-tests `
|
||||||
|
compile-extension:vscode-test-resolver `
|
||||||
|
}
|
||||||
|
displayName: Build integration tests
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
# Figure out the full absolute path of the product we just built
|
||||||
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\scripts\test-web-integration.bat --browser firefox }
|
# including the remote server and configure the integration tests
|
||||||
displayName: Run integration tests (Browser, Firefox)
|
# to run with these builds instead of running out of sources.
|
||||||
timeoutInMinutes: 20
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
$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
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
|
$ErrorActionPreference = "Stop"
|
||||||
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
|
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\scripts\test-web-integration.bat --browser firefox }
|
||||||
$AppNameShort = $AppProductJson.nameShort
|
displayName: Run integration tests (Browser, Firefox)
|
||||||
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 }
|
timeoutInMinutes: 20
|
||||||
displayName: Run integration tests (Remote)
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
timeoutInMinutes: 20
|
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
exec {.\build\azure-pipelines\win32\listprocesses.bat }
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
displayName: Diagnostics before smoke test run
|
$ErrorActionPreference = "Stop"
|
||||||
continueOnError: true
|
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
|
||||||
condition: and(succeededOrFailed(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
$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
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
$env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"
|
exec {.\build\azure-pipelines\win32\listprocesses.bat }
|
||||||
exec { yarn smoketest-no-compile --web --tracing --headless }
|
displayName: Diagnostics before smoke test run
|
||||||
displayName: Run smoke tests (Browser, Chromium)
|
continueOnError: true
|
||||||
timeoutInMinutes: 20
|
condition: and(succeededOrFailed(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
|
$ErrorActionPreference = "Stop"
|
||||||
exec { yarn smoketest-no-compile --tracing --build "$AppRoot" }
|
$env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"
|
||||||
displayName: Run smoke tests (Electron)
|
exec { yarn smoketest-no-compile --web --tracing --headless }
|
||||||
timeoutInMinutes: 20
|
displayName: Run smoke tests (Browser, Chromium)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
timeoutInMinutes: 20
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
$ErrorActionPreference = "Stop"
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
|
$ErrorActionPreference = "Stop"
|
||||||
$env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"
|
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
|
||||||
exec { yarn smoketest-no-compile --tracing --remote --build "$AppRoot" }
|
exec { yarn smoketest-no-compile --tracing --build "$AppRoot" }
|
||||||
displayName: Run smoke tests (Remote)
|
displayName: Run smoke tests (Electron)
|
||||||
timeoutInMinutes: 20
|
timeoutInMinutes: 20
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
- powershell: |
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
- powershell: |
|
||||||
exec {.\build\azure-pipelines\win32\listprocesses.bat }
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
displayName: Diagnostics after smoke test run
|
$ErrorActionPreference = "Stop"
|
||||||
continueOnError: true
|
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
|
||||||
condition: and(succeededOrFailed(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
$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
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
||||||
|
- powershell: |
|
||||||
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
|
exec {.\build\azure-pipelines\win32\listprocesses.bat }
|
||||||
|
displayName: Diagnostics after smoke test run
|
||||||
|
continueOnError: true
|
||||||
|
condition: and(succeededOrFailed(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@0
|
- task: PublishPipelineArtifact@0
|
||||||
inputs:
|
inputs:
|
||||||
|
|
|
@ -21,19 +21,19 @@ if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" (
|
||||||
:: Run from a built: need to compile all test extensions
|
:: Run from a built: need to compile all test extensions
|
||||||
:: because we run extension tests from their source folders
|
:: because we run extension tests from their source folders
|
||||||
:: and the build bundles extensions into .build webpacked
|
:: and the build bundles extensions into .build webpacked
|
||||||
call yarn gulp compile-extension:vscode-api-tests^
|
:: call yarn gulp compile-extension:vscode-api-tests^
|
||||||
compile-extension:vscode-colorize-tests^
|
:: compile-extension:vscode-colorize-tests^
|
||||||
compile-extension:markdown-language-features^
|
:: compile-extension:markdown-language-features^
|
||||||
compile-extension:typescript-language-features^
|
:: compile-extension:typescript-language-features^
|
||||||
compile-extension:vscode-custom-editor-tests^
|
:: compile-extension:vscode-custom-editor-tests^
|
||||||
compile-extension:vscode-notebook-tests^
|
:: compile-extension:vscode-notebook-tests^
|
||||||
compile-extension:emmet^
|
:: compile-extension:emmet^
|
||||||
compile-extension:css-language-features-server^
|
:: compile-extension:css-language-features-server^
|
||||||
compile-extension:html-language-features-server^
|
:: compile-extension:html-language-features-server^
|
||||||
compile-extension:json-language-features-server^
|
:: compile-extension:json-language-features-server^
|
||||||
compile-extension:git^
|
:: compile-extension:git^
|
||||||
compile-extension:ipynb^
|
:: compile-extension:ipynb^
|
||||||
compile-extension-media
|
:: compile-extension-media
|
||||||
|
|
||||||
:: Configuration for more verbose output
|
:: Configuration for more verbose output
|
||||||
set VSCODE_CLI=1
|
set VSCODE_CLI=1
|
||||||
|
|
|
@ -30,19 +30,19 @@ else
|
||||||
# Run from a built: need to compile all test extensions
|
# Run from a built: need to compile all test extensions
|
||||||
# because we run extension tests from their source folders
|
# because we run extension tests from their source folders
|
||||||
# and the build bundles extensions into .build webpacked
|
# and the build bundles extensions into .build webpacked
|
||||||
yarn gulp compile-extension:vscode-api-tests \
|
# yarn gulp compile-extension:vscode-api-tests \
|
||||||
compile-extension:vscode-colorize-tests \
|
# compile-extension:vscode-colorize-tests \
|
||||||
compile-extension:vscode-custom-editor-tests \
|
# compile-extension:vscode-custom-editor-tests \
|
||||||
compile-extension:vscode-notebook-tests \
|
# compile-extension:vscode-notebook-tests \
|
||||||
compile-extension:markdown-language-features \
|
# compile-extension:markdown-language-features \
|
||||||
compile-extension:typescript-language-features \
|
# compile-extension:typescript-language-features \
|
||||||
compile-extension:emmet \
|
# compile-extension:emmet \
|
||||||
compile-extension:css-language-features-server \
|
# compile-extension:css-language-features-server \
|
||||||
compile-extension:html-language-features-server \
|
# compile-extension:html-language-features-server \
|
||||||
compile-extension:json-language-features-server \
|
# compile-extension:json-language-features-server \
|
||||||
compile-extension:git \
|
# compile-extension:git \
|
||||||
compile-extension:ipynb \
|
# compile-extension:ipynb \
|
||||||
compile-extension-media
|
# compile-extension-media
|
||||||
|
|
||||||
# Configuration for more verbose output
|
# Configuration for more verbose output
|
||||||
export VSCODE_CLI=1
|
export VSCODE_CLI=1
|
||||||
|
|
|
@ -53,10 +53,10 @@ if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" (
|
||||||
:: Run from a built: need to compile all test extensions
|
:: Run from a built: need to compile all test extensions
|
||||||
:: because we run extension tests from their source folders
|
:: because we run extension tests from their source folders
|
||||||
:: and the build bundles extensions into .build webpacked
|
:: and the build bundles extensions into .build webpacked
|
||||||
call yarn gulp compile-extension:vscode-api-tests^
|
:: call yarn gulp compile-extension:vscode-api-tests^
|
||||||
compile-extension:microsoft-authentication^
|
:: compile-extension:microsoft-authentication^
|
||||||
compile-extension:github-authentication^
|
:: compile-extension:github-authentication^
|
||||||
compile-extension:vscode-test-resolver
|
:: compile-extension:vscode-test-resolver
|
||||||
|
|
||||||
:: Configuration for more verbose output
|
:: Configuration for more verbose output
|
||||||
set VSCODE_CLI=1
|
set VSCODE_CLI=1
|
||||||
|
|
|
@ -47,16 +47,16 @@ else
|
||||||
# Run from a built: need to compile all test extensions
|
# Run from a built: need to compile all test extensions
|
||||||
# because we run extension tests from their source folders
|
# because we run extension tests from their source folders
|
||||||
# and the build bundles extensions into .build webpacked
|
# and the build bundles extensions into .build webpacked
|
||||||
yarn gulp compile-extension:vscode-api-tests \
|
# yarn gulp compile-extension:vscode-api-tests \
|
||||||
compile-extension:vscode-test-resolver \
|
# compile-extension:vscode-test-resolver \
|
||||||
compile-extension:markdown-language-features \
|
# compile-extension:markdown-language-features \
|
||||||
compile-extension:typescript-language-features \
|
# compile-extension:typescript-language-features \
|
||||||
compile-extension:emmet \
|
# compile-extension:emmet \
|
||||||
compile-extension:git \
|
# compile-extension:git \
|
||||||
compile-extension:ipynb \
|
# compile-extension:ipynb \
|
||||||
compile-extension:microsoft-authentication \
|
# compile-extension:microsoft-authentication \
|
||||||
compile-extension:github-authentication \
|
# compile-extension:github-authentication \
|
||||||
compile-extension-media
|
# compile-extension-media
|
||||||
|
|
||||||
# Configuration for more verbose output
|
# Configuration for more verbose output
|
||||||
export VSCODE_CLI=1
|
export VSCODE_CLI=1
|
||||||
|
|
|
@ -25,12 +25,12 @@ if "%VSCODE_REMOTE_SERVER_PATH%"=="" (
|
||||||
:: Run from a built: need to compile all test extensions
|
:: Run from a built: need to compile all test extensions
|
||||||
:: because we run extension tests from their source folders
|
:: because we run extension tests from their source folders
|
||||||
:: and the build bundles extensions into .build webpacked
|
:: and the build bundles extensions into .build webpacked
|
||||||
call yarn gulp compile-extension:vscode-api-tests^
|
:: call yarn gulp compile-extension:vscode-api-tests^
|
||||||
compile-extension:markdown-language-features^
|
:: compile-extension:markdown-language-features^
|
||||||
compile-extension:typescript-language-features^
|
:: compile-extension:typescript-language-features^
|
||||||
compile-extension:emmet^
|
:: compile-extension:emmet^
|
||||||
compile-extension:git^
|
:: compile-extension:git^
|
||||||
compile-extension-media
|
:: compile-extension-media
|
||||||
)
|
)
|
||||||
|
|
||||||
if not exist ".\test\integration\browser\out\index.js" (
|
if not exist ".\test\integration\browser\out\index.js" (
|
||||||
|
|
|
@ -19,13 +19,13 @@ else
|
||||||
# Run from a built: need to compile all test extensions
|
# Run from a built: need to compile all test extensions
|
||||||
# because we run extension tests from their source folders
|
# because we run extension tests from their source folders
|
||||||
# and the build bundles extensions into .build webpacked
|
# and the build bundles extensions into .build webpacked
|
||||||
yarn gulp compile-extension:vscode-api-tests \
|
# yarn gulp compile-extension:vscode-api-tests \
|
||||||
compile-extension:markdown-language-features \
|
# compile-extension:markdown-language-features \
|
||||||
compile-extension:typescript-language-features \
|
# compile-extension:typescript-language-features \
|
||||||
compile-extension:emmet \
|
# compile-extension:emmet \
|
||||||
compile-extension:git \
|
# compile-extension:git \
|
||||||
compile-extension:ipynb \
|
# compile-extension:ipynb \
|
||||||
compile-extension-media
|
# compile-extension-media
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -e 'test/integration/browser/out/index.js' ];then
|
if [ ! -e 'test/integration/browser/out/index.js' ];then
|
||||||
|
|
Loading…
Reference in a new issue