mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 13:00:58 +00:00
![João Moreno](/assets/img/avatar_default.png)
* extend 1es pipeline template * oops * fix template references * argh * hmm * hm * hm * use outputs for compilation artifact * this * use 1ES.PublishPipelineArtifact@1 instead of publish * more 1ES.PublishPipelineArtifact@1 adoption * provide windows pool for sdl sources * sdl * fix pools * fix macos * disable sbom for intermediate artifacts * use mariner linux * try inline tsa options * fix credscan * hm * sudo it * more suppressions * be explicit with SBOM build drop paths * fix indentation * fix file extensions * fix cli sbom build drop paths * fix more build * fix unzip cli * careful with _manifest in artifacts * do not close file * add logging * debug * use snapcraft container * remove size check * fix macos cli step * fix snap permissions * fix macos * better logs * fix snap * more cred scan suppressions * even more supressiong * alpine-arm64: try using x64 * Revert "alpine-arm64: try using x64" This reverts commitbf2003bf60
. * test docker * I wonder * logs * hm * fix indentation * hm * hm * fix snap finds * remove auth * use hostArchitecture * snap: limit find * hm * sudo * Add validateToolOutput: None to the build pipeline * bring back sdl-scan * try all tools: true * use release * Update Azure Pipelines YAML file for Linux product build and test * hm * hm * same for win32 * hm * hm * Revert "hm" This reverts commit1b9dcae85b
. * use branch * fix template file * fix template paths
208 lines
8.7 KiB
YAML
208 lines
8.7 KiB
YAML
parameters:
|
|
- name: VSCODE_QUALITY
|
|
type: string
|
|
- name: VSCODE_RUN_UNIT_TESTS
|
|
type: boolean
|
|
- name: VSCODE_RUN_INTEGRATION_TESTS
|
|
type: boolean
|
|
- name: VSCODE_RUN_SMOKE_TESTS
|
|
type: boolean
|
|
|
|
steps:
|
|
- script: yarn npm-run-all -lp "electron $(VSCODE_ARCH)" "playwright-install"
|
|
env:
|
|
GITHUB_TOKEN: "$(github-distro-mixin-password)"
|
|
displayName: Download Electron and Playwright
|
|
retryCountOnTaskFailure: 3
|
|
|
|
- ${{ if eq(parameters.VSCODE_RUN_UNIT_TESTS, true) }}:
|
|
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
|
|
- script: ./scripts/test.sh --tfs "Unit Tests"
|
|
displayName: Run unit tests (Electron)
|
|
timeoutInMinutes: 15
|
|
|
|
- script: yarn test-node
|
|
displayName: Run unit tests (node.js)
|
|
timeoutInMinutes: 15
|
|
|
|
- script: yarn test-browser-no-install --sequential --browser chromium --browser webkit --tfs "Browser Unit Tests"
|
|
env:
|
|
DEBUG: "*browser*"
|
|
displayName: Run unit tests (Browser, Chromium & Webkit)
|
|
timeoutInMinutes: 30
|
|
|
|
- ${{ if ne(parameters.VSCODE_QUALITY, 'oss') }}:
|
|
- script: ./scripts/test.sh --build --tfs "Unit Tests"
|
|
displayName: Run unit tests (Electron)
|
|
timeoutInMinutes: 15
|
|
|
|
- script: yarn test-node --build
|
|
displayName: Run unit tests (node.js)
|
|
timeoutInMinutes: 15
|
|
|
|
- script: yarn test-browser-no-install --sequential --build --browser chromium --browser webkit --tfs "Browser Unit Tests"
|
|
env:
|
|
DEBUG: "*browser*"
|
|
displayName: Run unit tests (Browser, Chromium & Webkit)
|
|
timeoutInMinutes: 30
|
|
|
|
- ${{ if eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true) }}:
|
|
- script: |
|
|
set -e
|
|
yarn gulp \
|
|
compile-extension:configuration-editing \
|
|
compile-extension:css-language-features-server \
|
|
compile-extension:emmet \
|
|
compile-extension:git \
|
|
compile-extension:github-authentication \
|
|
compile-extension:html-language-features-server \
|
|
compile-extension:ipynb \
|
|
compile-extension:notebook-renderers \
|
|
compile-extension:json-language-features-server \
|
|
compile-extension:markdown-language-features-server \
|
|
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-test-resolver
|
|
displayName: Build integration tests
|
|
|
|
- ${{ 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" \
|
|
./scripts/test-integration.sh --build --tfs "Integration Tests"
|
|
env:
|
|
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)
|
|
displayName: Run integration tests (Electron)
|
|
timeoutInMinutes: 20
|
|
|
|
- script: ./scripts/test-web-integration.sh --browser webkit
|
|
env:
|
|
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)-web
|
|
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" \
|
|
./scripts/test-remote-integration.sh
|
|
env:
|
|
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)
|
|
displayName: Run integration tests (Remote)
|
|
timeoutInMinutes: 20
|
|
|
|
- ${{ if eq(parameters.VSCODE_RUN_SMOKE_TESTS, true) }}:
|
|
- script: ps -ef
|
|
displayName: Diagnostics before smoke test run
|
|
continueOnError: true
|
|
condition: succeededOrFailed()
|
|
|
|
- ${{ if eq(parameters.VSCODE_QUALITY, 'oss') }}:
|
|
- script: yarn --cwd test/smoke compile
|
|
displayName: Compile smoke tests
|
|
|
|
- script: yarn gulp compile-extension-media
|
|
displayName: Compile extensions for smoke tests
|
|
|
|
- script: 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: yarn smoketest-no-compile --web --tracing --headless
|
|
env:
|
|
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)-web
|
|
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`"
|
|
yarn smoketest-no-compile --tracing --remote --build "$APP_ROOT/$APP_NAME"
|
|
env:
|
|
VSCODE_REMOTE_SERVER_PATH: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)
|
|
timeoutInMinutes: 20
|
|
displayName: Run smoke tests (Remote)
|
|
|
|
- script: ps -ef
|
|
displayName: Diagnostics after smoke test run
|
|
continueOnError: true
|
|
condition: succeededOrFailed()
|
|
|
|
- ${{ if or(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
|
|
- task: 1ES.PublishPipelineArtifact@1
|
|
inputs:
|
|
targetPath: .build/crashes
|
|
${{ if and(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, false)) }}:
|
|
artifactName: crash-dump-macos-$(VSCODE_ARCH)-integration-$(System.JobAttempt)
|
|
${{ elseif and(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, false), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
|
|
artifactName: crash-dump-macos-$(VSCODE_ARCH)-smoke-$(System.JobAttempt)
|
|
${{ else }}:
|
|
artifactName: crash-dump-macos-$(VSCODE_ARCH)-$(System.JobAttempt)
|
|
sbomEnabled: false
|
|
displayName: "Publish Crash Reports"
|
|
continueOnError: true
|
|
condition: failed()
|
|
|
|
# In order to properly symbolify above crash reports
|
|
# (if any), we need the compiled native modules too
|
|
- task: 1ES.PublishPipelineArtifact@1
|
|
inputs:
|
|
targetPath: node_modules
|
|
${{ if and(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, false)) }}:
|
|
artifactName: node-modules-macos-$(VSCODE_ARCH)-integration-$(System.JobAttempt)
|
|
${{ elseif and(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, false), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
|
|
artifactName: node-modules-macos-$(VSCODE_ARCH)-smoke-$(System.JobAttempt)
|
|
${{ else }}:
|
|
artifactName: node-modules-macos-$(VSCODE_ARCH)-$(System.JobAttempt)
|
|
sbomEnabled: false
|
|
displayName: "Publish Node Modules"
|
|
continueOnError: true
|
|
condition: failed()
|
|
|
|
- task: 1ES.PublishPipelineArtifact@1
|
|
inputs:
|
|
targetPath: .build/logs
|
|
${{ if and(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, true), eq(parameters.VSCODE_RUN_SMOKE_TESTS, false)) }}:
|
|
artifactName: logs-macos-$(VSCODE_ARCH)-integration-$(System.JobAttempt)
|
|
${{ elseif and(eq(parameters.VSCODE_RUN_INTEGRATION_TESTS, false), eq(parameters.VSCODE_RUN_SMOKE_TESTS, true)) }}:
|
|
artifactName: logs-macos-$(VSCODE_ARCH)-smoke-$(System.JobAttempt)
|
|
${{ else }}:
|
|
artifactName: logs-macos-$(VSCODE_ARCH)-$(System.JobAttempt)
|
|
sbomEnabled: false
|
|
displayName: "Publish Log Files"
|
|
continueOnError: true
|
|
condition: succeededOrFailed()
|
|
|
|
- task: PublishTestResults@2
|
|
displayName: Publish Tests Results
|
|
inputs:
|
|
testResultsFiles: "*-results.xml"
|
|
searchFolder: "$(Build.ArtifactStagingDirectory)/test-results"
|
|
condition: succeededOrFailed()
|