Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Azure Pipelines] Run infrastructure/ tests on Windows 10 #14300

Merged
merged 138 commits into from
Jan 31, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
58c1a13
[Azure Pipelines] Hello World, Windows 10!
foolip Nov 29, 2018
ff7a5e0
Use shallow checkout
foolip Nov 29, 2018
3922f25
Run both Win 10 and IP
foolip Nov 29, 2018
cf491d7
Drop IP again (agent offline)
foolip Nov 29, 2018
f02a163
add UsePythonVersion task
foolip Nov 29, 2018
114b9d4
systeminfo
foolip Nov 29, 2018
870b136
fix indentation
foolip Nov 29, 2018
f7a43c9
Look for Agent.ToolsDirectory
foolip Nov 30, 2018
f90c12d
Inpect macOS tools dir
foolip Nov 30, 2018
5683460
Inspect win2016 tools dir
foolip Nov 30, 2018
04280af
Inspect more Windows!
foolip Nov 30, 2018
f79971c
Drop Windows Server 2012R2 (old)
foolip Nov 30, 2018
325aa0c
try msiexec
foolip Nov 30, 2018
167a304
Try msiexec /i
foolip Nov 30, 2018
8f07f9d
try https://www.howtogeek.com/184374/how-to-fix-the-windows-installer…
foolip Nov 30, 2018
6bf4be2
no bash on win10
foolip Nov 30, 2018
26171c2
flatten
foolip Nov 30, 2018
16a1919
try quoting
foolip Nov 30, 2018
5819e7f
List $AGENT_TOOLSDIRECTORY again
foolip Nov 30, 2018
8f0c1c8
Fight msiexec more
foolip Nov 30, 2018
77166f4
Extract python from vs2017-win2016
foolip Nov 30, 2018
a6a586c
Revert "Extract python from vs2017-win2016"
foolip Nov 30, 2018
55e8597
Check in Python 2.7.15 (ha!)
foolip Nov 30, 2018
cfde281
try more escaping
foolip Nov 30, 2018
121ef6e
remove step that failed
foolip Nov 30, 2018
50a0a14
Drop Windows 2016/1803 jobs
foolip Nov 30, 2018
52e8198
try xcopy /syi
foolip Nov 30, 2018
1fc51b4
adjust xcopy path (works like rsync?)
foolip Nov 30, 2018
18d6b1e
Add x64.complete
foolip Nov 30, 2018
a219fc2
virtualenv + wpt
foolip Nov 30, 2018
c1d55da
just pip, does it work?
foolip Nov 30, 2018
843c582
Extract python tools as build artifact
foolip Dec 3, 2018
1787643
fix PublishBuildArtifacts rule
foolip Dec 3, 2018
1fb751b
Update new Python 2.7.15 installed to the right path
foolip Dec 3, 2018
c9cd86c
Replace tools directory
foolip Dec 3, 2018
02861d8
Revert "Extract python tools as build artifact"
foolip Dec 3, 2018
0e4c6c6
./wpt manifest
foolip Dec 3, 2018
75a4562
Try running tox
foolip Dec 3, 2018
36fbd5a
try tox more
foolip Dec 3, 2018
24480ed
publish results
foolip Dec 3, 2018
a458fbf
infrastructure/ win10
foolip Dec 3, 2018
ee26d5b
tox->virtualenv
foolip Dec 3, 2018
0ded10a
Try Insider Preview too
foolip Dec 3, 2018
2dfbda7
try msiexec again
foolip Dec 4, 2018
2398107
Try certmgr
foolip Dec 4, 2018
42ad8fe
Run EdgeDriver
foolip Dec 4, 2018
159e0d8
copypasta oops
foolip Dec 4, 2018
3c18110
MicrosoftWebDriver /h
foolip Dec 4, 2018
47aa81d
Show user + try certutil
foolip Dec 5, 2018
989f7d7
try certutil on Hosted Windows Client
foolip Dec 6, 2018
b7cad4a
Show system/user info before checkout
foolip Dec 6, 2018
5aabc42
Revert "Show system/user info before checkout"
foolip Dec 7, 2018
cbe35ac
Trim jobs to just one Win10 for debugging
foolip Dec 7, 2018
0324957
Try running Edge infrastructure/
foolip Dec 7, 2018
2b04d04
fix the job name
foolip Dec 7, 2018
58938b3
Try msiexec yet again
foolip Dec 7, 2018
ece6cc7
msiexec /qb
foolip Dec 7, 2018
ca78bf9
Try more with Python
foolip Dec 7, 2018
ba3c376
where are you, Python?
foolip Dec 7, 2018
0331739
debug %PATH%
foolip Dec 7, 2018
0339916
use powershell to fix quoting problem
foolip Dec 7, 2018
dce7883
pip --disable-pip-version-check
foolip Dec 7, 2018
bdb6609
more fun with paths
foolip Dec 7, 2018
2f4e73a
missing $ :(
foolip Dec 7, 2018
d796002
debug more
foolip Dec 7, 2018
8399d58
Updated virtualenv install command for Windows clients
Dec 7, 2018
0d024c8
Testing virtualenv installation options
Dec 7, 2018
712cc42
Change task type for virtualenv version
Dec 7, 2018
d0b0fbd
Removed virtualenv version check
Dec 7, 2018
14c7728
Make $hostFile a string
Dec 7, 2018
2a8727c
Uninstall virtualenv before installation
Dec 7, 2018
6df95d9
Added cleanup task for python packages
Dec 7, 2018
3fdea06
Continue on error to ensure we run cleanup task
Dec 7, 2018
a55f0dd
try edge_webdriver->edge
foolip Dec 7, 2018
fd37f3f
Revert "try edge_webdriver->edge"
foolip Dec 7, 2018
f5fe3bb
enable mach logging
foolip Dec 7, 2018
384050e
Create a new user account
foolip Dec 7, 2018
ec40da4
Always restore hosts file
foolip Dec 7, 2018
48ddfb0
Try runas /user:TestRunner
foolip Dec 7, 2018
d1d4e72
try harder
foolip Dec 7, 2018
4ab5d5d
Remove continue on error
Dec 7, 2018
7bba8ad
Removed runas step as it fails
Dec 7, 2018
be6627f
Removed runas commands
Dec 7, 2018
4bc004c
add edge_webdriver expectations metadata
foolip Dec 10, 2018
614a7a4
Merge remote-tracking branch 'origin/master' into foolip/azure-win10
foolip Dec 10, 2018
0a496ab
tweak expectation
foolip Dec 10, 2018
139af40
revert some expectations
foolip Dec 10, 2018
13deafb
publish wpt report for debugging
foolip Dec 10, 2018
1808e70
remove debugging steps
foolip Dec 10, 2018
2c4ec49
try failOnStderr: false
foolip Dec 10, 2018
487f818
publish results on succeededOrFailed()
foolip Dec 10, 2018
2663f6d
Try skipping pathtoPublish
foolip Dec 10, 2018
7c1dc98
Revert "try failOnStderr: false"
foolip Dec 10, 2018
1b09c85
try \n in .ini
foolip Dec 10, 2018
4660df4
more expectations
foolip Dec 10, 2018
8f62cfb
Download Python
foolip Dec 10, 2018
b3295f4
indent!
foolip Dec 10, 2018
760b12b
Flesh out hash verification
foolip Dec 10, 2018
c433019
Use the correct hash (wrong for testing)
foolip Dec 10, 2018
33deec4
Update .azure-pipelines.yml
foolip Dec 10, 2018
8b6ff00
Update .azure-pipelines.yml
foolip Dec 10, 2018
dbb9547
Update .azure-pipelines.yml
foolip Dec 10, 2018
971154c
Update .azure-pipelines.yml
foolip Dec 10, 2018
705a877
Merge tag 'merge_pr_14459' into foolip/azure-win10
foolip Dec 11, 2018
6830c7d
Try running Firefox too
foolip Dec 11, 2018
1313cfa
Use install_certs.yml
foolip Dec 11, 2018
e996009
disambiguate install_certs.yml names
foolip Dec 11, 2018
f7855a5
consolidate into tools/ci/azure more
foolip Dec 11, 2018
9d89d26
Added taskkill commands to close any lingering Edge processes
Dec 11, 2018
bc2a830
Switch to release preview pool
Dec 18, 2018
5ef4f36
Removed MacOS jobs
Dec 18, 2018
814fbd3
Merge tag 'merge_pr_14535' into foolip/azure-win10
foolip Dec 18, 2018
4bc153b
Disabled manifest downloading step
Dec 19, 2018
3030e89
Merge branch 'foolip/azure-win10' of https://github.com/web-platform-…
Dec 19, 2018
d92cb05
Continue running tests on error
Dec 19, 2018
903ecec
Restored back changes
Dec 19, 2018
0853722
s/10 Windows/Windows 10/
foolip Dec 20, 2018
463eb7f
Revert macOS changes
foolip Dec 20, 2018
6b683be
Fix the job name/displayName
foolip Dec 20, 2018
d93d902
Include OS in infrastructure TBPL log names
foolip Dec 20, 2018
dd921ed
update expectations for allowed-to-play.html.ini
foolip Dec 20, 2018
5646297
Drop Firefox infrastructure/ tests on Win10
foolip Dec 20, 2018
60d8572
Don't continueOnError (handled by condition)
foolip Dec 20, 2018
6afc695
fix root->decision
foolip Dec 20, 2018
ff910c0
Try ignoreLASTEXITCODE
foolip Dec 20, 2018
37150a8
Drop "Show system info (macOS)" (very verbose)
foolip Dec 20, 2018
c69e6cf
Drop .ini TODOs for edge_webdriver
foolip Dec 20, 2018
ed6a0d6
move doc link
foolip Dec 20, 2018
beb53fc
Remove "Uninstall Python packages" step
foolip Dec 20, 2018
5814807
Merge tag 'merge_pr_13377' into foolip/azure-win10
foolip Jan 25, 2019
85c63eb
Use stable Windows 10 agent
foolip Jan 25, 2019
b2d1a99
Rename job name and displayName to match pool
foolip Jan 25, 2019
f2492ad
Move cleanup into a template
foolip Jan 30, 2019
74a8994
Only trigger Windows 10 manually
foolip Jan 30, 2019
8f663c6
remove `trigger: none`
foolip Jan 30, 2019
6e1ba7c
Add --no-cache-dir
foolip Jan 30, 2019
e1c2247
Mark size-ref.html as a failure on edge_webdriver
foolip Jan 30, 2019
3a28d34
oops, wrong filename
foolip Jan 30, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@
# - A scheduled build needs to be set up for the the epochs/daily branch.
# - To get results from scheduled builds into wpt.fyi, a service connection
# named wpt.fyi with URL https://wpt.fyi is needed.
# - Self-hosted agents for Windows 10 are used:
# - 'Hosted Windows Client' is the latest Windows 10
# - 'Hosted Windows Client Next' is Windows 10 Insider Preview
# Documention for the setup of these agents:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows

jobs:
# The affected tests jobs are unconditional for speed, as most PRs have one or
Expand Down Expand Up @@ -127,6 +132,31 @@ jobs:
parameters:
directory: tools/wpt/

- job: infrastructure_win10
displayName: 'infrastructure/ tests (Windows 10)'
# This job is only triggered manually until it has been shown to be robust.
condition: eq(variables['Build.Reason'], 'Manual')
pool:
name: 'Hosted Windows Client'
steps:
- template: tools/ci/azure/system_info.yml
- template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_python.yml
- template: tools/ci/azure/pip_install.yml
parameters:
packages: virtualenv
- template: tools/ci/azure/install_certs.yml
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl $(Build.ArtifactStagingDirectory)/edge.tbpl.log --log-tbpl-level info edge_webdriver infrastructure/
displayName: 'Run tests (Edge)'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:
artifactName: 'infrastructure'
condition: succeededOrFailed()
- template: tools/ci/azure/cleanup_win10.yml

- job: all_macOS
displayName: 'all tests (Safari Technology Preview)'
condition: eq(variables['Build.Reason'], 'Schedule')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
[allowed-to-play.html]
expected:
if product == "edge_webdriver": TIMEOUT
if product == "safari": ERROR # https://bugs.webkit.org/show_bug.cgi?id=190775


[<audio> autoplay]
expected:
if product == "edge_webdriver": TIMEOUT
if product == "safari": FAIL # https://bugs.webkit.org/show_bug.cgi?id=190775
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
[html-elements.html]
[(pre-req for comparison tests) all CSS short-hand supported]
expected:
if product == "edge_webdriver": FAIL


[Compare CSS span definitions (only valid if pre-reqs pass)]
expected:
if product == "safari": FAIL # https://webkit.org/show_bug.cgi?id=187052
Expand Down
4 changes: 4 additions & 0 deletions infrastructure/metadata/infrastructure/reftest/size.html.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[size.html]
type: reftest
expected:
if product == "edge_webdriver": FAIL # https://github.com/web-platform-tests/wpt/issues/15159
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[context.any.sharedworker.html]
[context]
expected:
if product == "edge_webdriver": FAIL
if product == "safari": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850
Original file line number Diff line number Diff line change
@@ -1,4 +1,27 @@
[order-of-metas.any.worker.html]
expected:
if product == "edge_webdriver": TIMEOUT


[order-of-metas.any.html]
[<meta name=timeout> exists]
expected:
if product == "edge_webdriver": FAIL


[order-of-metas.any.sharedworker.html]
[foo\n]
expected:
if product == "edge_webdriver": FAIL


[foo]
expected:
if product == "edge_webdriver": FAIL
if product == "safari": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850


[order-of-metas.window.html]
[<meta name=timeout> exists]
expected:
if product == "edge_webdriver": FAIL
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[order-of-metas.window.html]
[<meta name=timeout> exists]
expected:
if product == "edge_webdriver": FAIL
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[secure-context.https.any.sharedworker.html]
[secure-context]
expected:
if product == "edge_webdriver": FAIL
if product == "safari": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850
16 changes: 16 additions & 0 deletions infrastructure/metadata/infrastructure/server/title.any.js.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
[title.any.html]
[foobar\n]
expected:
if product == "edge_webdriver": FAIL


[title.any.sharedworker.html]
[foobar\n]
expected:
if product == "edge_webdriver": FAIL


[foobar]
expected:
if product == "safari": FAIL # https://bugs.webkit.org/show_bug.cgi?id=149850


[title.any.worker.html]
expected:
if product == "edge_webdriver": TIMEOUT
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[file_upload.sub.html]
expected:
if product == "edge_webdriver": ERROR
13 changes: 13 additions & 0 deletions tools/ci/azure/cleanup_win10.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# This is cleanup for update_hosts.yml and killing all Edge and WebDriver
# processes to leave the agent in a clean state for the next job. This is
# necessary because the Windows 10 agents aren't reset between each job.
steps:
- powershell: |
$hostFile = "$env:systemroot\System32\drivers\etc\hosts"
Copy-Item -Path "$hostFile.back" -Destination $hostFile -Force
taskkill /f /im MicrosoftEdge*
taskkill /f /im MicrosoftWebDriver.exe
displayName: 'Restore hosts file and cleanup test machine'
condition: always()
errorActionPreference: silentlyContinue
ignoreLASTEXITCODE: true
6 changes: 5 additions & 1 deletion tools/ci/azure/install_certs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@ steps:
- script: |
# https://github.com/web-platform-tests/results-collection/blob/master/src/scripts/trust-root-ca.sh
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain tools/certs/cacert.pem
displayName: 'Install web-platform.test certificate'
displayName: 'Install web-platform.test certificate (macOS)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
- script: certutil –addstore -enterprise –f "Root" tools\certs\cacert.pem
displayName: 'Install web-platform.test certificate (Windows)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
15 changes: 15 additions & 0 deletions tools/ci/azure/install_python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
steps:
- powershell: |
Start-BitsTransfer -Source https://www.python.org/ftp/python/2.7.15/python-2.7.15.amd64.msi -Destination python.msi
$hash = (Get-FileHash python.msi).Hash.ToLower()
$expectedHash = "5e85f3c4c209de98480acbf2ba2e71a907fd5567a838ad4b6748c76deb286ad7"
if ($hash.Equals($expectedHash)) {
Write-Host "python.msi hash verified"
} else {
Throw "python.msi hash mismatch, got $hash, expected $expectedHash"
}
msiexec /i python.msi TARGETDIR=C:\Python27 /q
Write-Host "##vso[task.prependpath]C:\Python27"
Write-Host "##vso[task.prependpath]C:\Python27\Scripts"
displayName: 'Install Python (Windows)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
9 changes: 8 additions & 1 deletion tools/ci/azure/pip_install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,11 @@ steps:
# Integrity Protection, see https://stackoverflow.com/a/33004920.
pip install --user ${{ parameters.packages }}
echo "##vso[task.prependpath]$HOME/Library/Python/2.7/bin"
displayName: 'Install Python packages'
displayName: 'Install Python packages (macOS)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
# TODO(foolip): remove --no-cache-dir when the Windows agents are reset
# between each job. Currently, jobs can otherwise fail with "Cache entry
# deserialization failed, entry ignored".
- powershell: pip --no-cache-dir --disable-pip-version-check install --upgrade ${{ parameters.packages }}
displayName: 'Install Python packages (Windows)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
4 changes: 4 additions & 0 deletions tools/ci/azure/system_info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
steps:
- script: systeminfo
displayName: 'Show system info (Windows)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
9 changes: 8 additions & 1 deletion tools/ci/azure/update_hosts.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
steps:
- script: ./wpt make-hosts-file | sudo tee -a /etc/hosts
displayName: 'Update /etc/hosts'
displayName: 'Update hosts (macOS)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
- powershell: |
$hostFile = "$env:systemroot\System32\drivers\etc\hosts"
Copy-Item -Path $hostFile -Destination "$hostFile.back" -Force
python wpt make-hosts-file | Out-File $env:systemroot\System32\drivers\etc\hosts -Encoding ascii -Append
displayName: 'Update hosts (Windows)'
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
3 changes: 2 additions & 1 deletion tools/ci/azure/update_manifest.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
steps:
- script: ./wpt manifest
# `python wpt` instead of `./wpt` is to make this work on Windows:
- script: python wpt manifest
displayName: 'Update manifest'