build - address some issues
- run local and remote integration tests separately - enable playwright on Linux with -no-sandbox trick
This commit is contained in:
parent
33d3f3ae4b
commit
4b359a57a5
|
@ -118,6 +118,16 @@ steps:
|
||||||
displayName: Run integration tests (Electron)
|
displayName: Run integration tests (Electron)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
set -e
|
||||||
|
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
|
||||||
|
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" \
|
||||||
|
./resources/server/test/test-remote-integration.sh
|
||||||
|
displayName: Run remote integration tests (Electron)
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
set -e
|
set -e
|
||||||
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
|
||||||
|
|
|
@ -104,16 +104,11 @@ steps:
|
||||||
displayName: Run unit tests (Electron)
|
displayName: Run unit tests (Electron)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
# Playwright currently does not run on the Linux docker container we use
|
- script: |
|
||||||
# given our dependencies. Someone with some energy should follow up and
|
set -e
|
||||||
# find out what is still missing to get Chrome started in the container.
|
DISPLAY=:10 yarn test-browser --build --browser chromium
|
||||||
# Refs: https://github.com/microsoft/vscode-linux-build-agent/blob/master/x64/Dockerfile
|
displayName: Run unit tests (Browser)
|
||||||
#
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
# - script: |
|
|
||||||
# set -e
|
|
||||||
# DISPLAY=:10 yarn test-browser --build --browser chromium
|
|
||||||
# displayName: Run unit tests (Browser)
|
|
||||||
# condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
# Figure out the full absolute path of the product we just built
|
# Figure out the full absolute path of the product we just built
|
||||||
|
@ -128,17 +123,22 @@ steps:
|
||||||
displayName: Run integration tests (Electron)
|
displayName: Run integration tests (Electron)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
# Playwright currently does not run on the Linux docker container we use
|
- script: |
|
||||||
# given our dependencies. Someone with some energy should follow up and
|
set -e
|
||||||
# find out what is still missing to get Chrome started in the container.
|
APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64
|
||||||
# Refs: https://github.com/microsoft/vscode-linux-build-agent/blob/master/x64/Dockerfile
|
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
|
||||||
# - script: |
|
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
|
||||||
# set -e
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-x64" \
|
||||||
# VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64" \
|
DISPLAY=:10 ./resources/server/test/test-remote-integration.sh
|
||||||
# DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
|
displayName: Run remote integration tests (Electron)
|
||||||
# continueOnError: true
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
# displayName: Run integration tests (Browser)
|
|
||||||
# condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
- script: |
|
||||||
|
set -e
|
||||||
|
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64" \
|
||||||
|
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
|
||||||
|
displayName: Run integration tests (Browser)
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
set -e
|
set -e
|
||||||
|
|
|
@ -132,6 +132,16 @@ steps:
|
||||||
displayName: Run integration tests (Electron)
|
displayName: Run integration tests (Electron)
|
||||||
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
|
- 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)"; .\resources\server\test\test-remote-integration.bat }
|
||||||
|
displayName: Run remote integration tests (Electron)
|
||||||
|
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
|
||||||
|
|
||||||
- powershell: |
|
- powershell: |
|
||||||
. build/azure-pipelines/win32/exec.ps1
|
. build/azure-pipelines/win32/exec.ps1
|
||||||
$ErrorActionPreference = "Stop"
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
|
@ -63,10 +63,6 @@ if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
call .\scripts\node-electron.bat .\node_modules\mocha\bin\_mocha .\extensions\*\server\out\test\**\*.test.js
|
call .\scripts\node-electron.bat .\node_modules\mocha\bin\_mocha .\extensions\*\server\out\test\**\*.test.js
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
if exist ".\resources\server\test\test-remote-integration.bat" (
|
|
||||||
call .\resources\server\test\test-remote-integration.bat
|
|
||||||
)
|
|
||||||
|
|
||||||
rmdir /s /q %VSCODEUSERDATADIR%
|
rmdir /s /q %VSCODEUSERDATADIR%
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
|
|
@ -49,12 +49,6 @@ fi
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $ROOT/extensions/emmet/out/test/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $ROOT/extensions/emmet/out/test/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --user-data-dir=$VSCODEUSERDATADIR
|
||||||
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $(mktemp -d 2>/dev/null) --extensionDevelopmentPath=$ROOT/extensions/git --extensionTestsPath=$ROOT/extensions/git/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --user-data-dir=$VSCODEUSERDATADIR
|
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $(mktemp -d 2>/dev/null) --extensionDevelopmentPath=$ROOT/extensions/git --extensionTestsPath=$ROOT/extensions/git/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --user-data-dir=$VSCODEUSERDATADIR
|
||||||
|
|
||||||
|
|
||||||
# Remote Integration Tests
|
|
||||||
if [ -f ./resources/server/test/test-remote-integration.sh ]; then
|
|
||||||
./resources/server/test/test-remote-integration.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Tests in commonJS
|
# Tests in commonJS
|
||||||
cd $ROOT/extensions/css-language-features/server && $ROOT/scripts/node-electron.sh test/index.js
|
cd $ROOT/extensions/css-language-features/server && $ROOT/scripts/node-electron.sh test/index.js
|
||||||
cd $ROOT/extensions/html-language-features/server && $ROOT/scripts/node-electron.sh test/index.js
|
cd $ROOT/extensions/html-language-features/server && $ROOT/scripts/node-electron.sh test/index.js
|
||||||
|
|
|
@ -29,7 +29,8 @@ const width = 1200;
|
||||||
const height = 800;
|
const height = 800;
|
||||||
|
|
||||||
async function runTestsInBrowser(browserType: string, endpoint: url.UrlWithStringQuery, server: cp.ChildProcess): Promise<void> {
|
async function runTestsInBrowser(browserType: string, endpoint: url.UrlWithStringQuery, server: cp.ChildProcess): Promise<void> {
|
||||||
const browser = await playwright[browserType].launch({ headless: !Boolean(optimist.argv.debug) });
|
const args = process.platform === 'linux' && browserType === 'chromium' ? ['--no-sandbox'] : undefined; // disable sandbox to run chrome on certain Linux distros
|
||||||
|
const browser = await playwright[browserType].launch({ headless: !Boolean(optimist.argv.debug), dumpio: true, args });
|
||||||
const page = (await browser.defaultContext().pages())[0];
|
const page = (await browser.defaultContext().pages())[0];
|
||||||
await page.setViewport({ width, height });
|
await page.setViewport({ width, height });
|
||||||
|
|
||||||
|
|
|
@ -118,8 +118,8 @@ const testModules = (async function () {
|
||||||
|
|
||||||
|
|
||||||
async function runTestsInBrowser(testModules, browserType) {
|
async function runTestsInBrowser(testModules, browserType) {
|
||||||
|
const args = process.platform === 'linux' && browserType === 'chromium' ? ['--no-sandbox'] : undefined; // disable sandbox to run chrome on certain Linux distros
|
||||||
const browser = await playwright[browserType].launch({ headless: !Boolean(argv.debug) });
|
const browser = await playwright[browserType].launch({ headless: !Boolean(argv.debug), dumpio: true, args });
|
||||||
const page = (await browser.defaultContext().pages())[0]
|
const page = (await browser.defaultContext().pages())[0]
|
||||||
const target = url.pathToFileURL(path.join(__dirname, 'renderer.html'));
|
const target = url.pathToFileURL(path.join(__dirname, 'renderer.html'));
|
||||||
if (argv.build) {
|
if (argv.build) {
|
||||||
|
|
Loading…
Reference in a new issue