tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

.azure-pipelines.yml (14484B)


      1 # This is the configuration file for Azure Pipelines, used to run tests on
      2 # macOS and Windows. Documentation to help understand this setup:
      3 # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema
      4 # https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers
      5 # https://docs.microsoft.com/en-us/azure/devops/pipelines/process/multiple-phases
      6 # https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates
      7 # https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables
      8 # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/index
      9 #
     10 # In addition to this configuration file, some setup in the Azure DevOps
     11 # project is required:
     12 #  - The "Build pull requests from forks of this repository" setting must be
     13 #    enabled: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github#validate-contributions-from-forks
     14 
     15 trigger:
     16 # These are all the branches referenced in the jobs that follow.
     17 - epochs/daily
     18 - epochs/three_hourly
     19 - triggers/edge_stable
     20 - triggers/edge_dev
     21 - triggers/edge_canary
     22 - triggers/wktr_preview
     23 
     24 # Set safaridriver_diagnose to true to enable safaridriver diagnostics. The
     25 # logs won't appear in `./wpt run` output but will be uploaded as an artifact.
     26 variables:
     27  safaridriver_diagnose: false
     28 
     29 jobs:
     30 # The decision jobs runs `./wpt test-jobs` to determine which jobs to run,
     31 # and all following jobs wait for it to finish and depend on its output.
     32 - job: decision
     33  displayName: './wpt test-jobs'
     34  condition: eq(variables['Build.Reason'], 'PullRequest')
     35  pool:
     36    vmImage: 'ubuntu-24.04'
     37  steps:
     38  - task: UsePythonVersion@0
     39    inputs:
     40      versionSpec: '3.14'
     41  - template: tools/ci/azure/checkout.yml
     42  - script: |
     43      set -eux -o pipefail
     44      git fetch --depth 50 --quiet origin master
     45      ./wpt test-jobs | while read job; do
     46        echo "$job"
     47        echo "##vso[task.setvariable variable=$job;isOutput=true]true";
     48      done
     49    name: test_jobs
     50    displayName: 'Run ./wpt test-jobs'
     51 
     52 - job: tools_unittest_mac_py38
     53  displayName: 'tools/ unittests: macOS + Python 3.8'
     54  dependsOn: decision
     55  condition: dependencies.decision.outputs['test_jobs.tools_unittest']
     56  pool:
     57    vmImage: 'macOS-14'
     58  steps:
     59  - task: UsePythonVersion@0
     60    inputs:
     61      versionSpec: '3.8'
     62  - template: tools/ci/azure/checkout.yml
     63  - template: tools/ci/azure/tox_pytest.yml
     64    parameters:
     65      directory: tools/
     66      toxenv: py38
     67 
     68 - job: tools_unittest_mac_py314
     69  displayName: 'tools/ unittests: macOS + Python 3.14'
     70  dependsOn: decision
     71  condition: dependencies.decision.outputs['test_jobs.tools_unittest']
     72  pool:
     73    vmImage: 'macOS-14'
     74  steps:
     75  - task: UsePythonVersion@0
     76    inputs:
     77      versionSpec: '3.14'
     78  - template: tools/ci/azure/checkout.yml
     79  - template: tools/ci/azure/tox_pytest.yml
     80    parameters:
     81      directory: tools/
     82      toxenv: py314
     83 
     84 - job: wptrunner_unittest_mac_py38
     85  displayName: 'tools/wptrunner/ unittests: macOS + Python 3.8'
     86  dependsOn: decision
     87  condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
     88  pool:
     89    vmImage: 'macOS-14'
     90  steps:
     91  - task: UsePythonVersion@0
     92    inputs:
     93      versionSpec: '3.8'
     94  - template: tools/ci/azure/checkout.yml
     95  - template: tools/ci/azure/tox_pytest.yml
     96    parameters:
     97      directory: tools/wptrunner/
     98      toxenv: py38
     99 
    100 - job: wptrunner_unittest_mac_py314
    101  displayName: 'tools/wptrunner/ unittests: macOS + Python 3.14'
    102  dependsOn: decision
    103  condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
    104  pool:
    105    vmImage: 'macOS-14'
    106  steps:
    107  - task: UsePythonVersion@0
    108    inputs:
    109      versionSpec: '3.14'
    110  - template: tools/ci/azure/checkout.yml
    111  - template: tools/ci/azure/tox_pytest.yml
    112    parameters:
    113      directory: tools/wptrunner/
    114      toxenv: py314
    115 
    116 - job: wpt_integration_mac_py38
    117  displayName: 'tools/wpt/ tests: macOS + Python 3.8'
    118  dependsOn: decision
    119  condition: dependencies.decision.outputs['test_jobs.wpt_integration']
    120  pool:
    121    vmImage: 'macOS-14'
    122  steps:
    123  # full checkout required
    124  - task: UsePythonVersion@0
    125    inputs:
    126      versionSpec: '3.8'
    127  - template: tools/ci/azure/update_hosts.yml
    128  - template: tools/ci/azure/update_manifest.yml
    129  - template: tools/ci/azure/tox_pytest.yml
    130    parameters:
    131      directory: tools/wpt/
    132      toxenv: py38
    133 
    134 - job: wpt_integration_mac_py314
    135  displayName: 'tools/wpt/ tests: macOS + Python 3.14'
    136  dependsOn: decision
    137  condition: dependencies.decision.outputs['test_jobs.wpt_integration']
    138  pool:
    139    vmImage: 'macOS-14'
    140  steps:
    141  # full checkout required
    142  - task: UsePythonVersion@0
    143    inputs:
    144      versionSpec: '3.14'
    145  - template: tools/ci/azure/update_hosts.yml
    146  - template: tools/ci/azure/update_manifest.yml
    147  - template: tools/ci/azure/tox_pytest.yml
    148    parameters:
    149      directory: tools/wpt/
    150      toxenv: py314
    151 
    152 - job: tools_unittest_win_py38
    153  displayName: 'tools/ unittests: Windows + Python 3.8'
    154  dependsOn: decision
    155  condition: dependencies.decision.outputs['test_jobs.tools_unittest']
    156  pool:
    157    vmImage: 'windows-latest'
    158  variables:
    159    HYPOTHESIS_PROFILE: ci
    160  steps:
    161  - task: UsePythonVersion@0
    162    inputs:
    163      versionSpec: '3.8'
    164      addToPath: false
    165  - template: tools/ci/azure/checkout.yml
    166  - template: tools/ci/azure/tox_pytest.yml
    167    parameters:
    168      directory: tools/
    169      toxenv: py38
    170 
    171 - job: tools_unittest_win_py314
    172  displayName: 'tools/ unittests: Windows + Python 3.14'
    173  dependsOn: decision
    174  condition: dependencies.decision.outputs['test_jobs.tools_unittest']
    175  pool:
    176    vmImage: 'windows-latest'
    177  steps:
    178  - task: UsePythonVersion@0
    179    inputs:
    180      versionSpec: '3.14'
    181      addToPath: false
    182  - template: tools/ci/azure/checkout.yml
    183  - template: tools/ci/azure/tox_pytest.yml
    184    parameters:
    185      directory: tools/
    186      toxenv: py314
    187 
    188 - job: wptrunner_unittest_win_py38
    189  displayName: 'tools/wptrunner/ unittests: Windows + Python 3.8'
    190  dependsOn: decision
    191  condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
    192  pool:
    193    vmImage: 'windows-latest'
    194  steps:
    195  - task: UsePythonVersion@0
    196    inputs:
    197      versionSpec: '3.8'
    198      addToPath: false
    199  - template: tools/ci/azure/checkout.yml
    200  - template: tools/ci/azure/tox_pytest.yml
    201    parameters:
    202      directory: tools/wptrunner/
    203      toxenv: py38
    204 
    205 - job: wptrunner_unittest_win_py314
    206  displayName: 'tools/wptrunner/ unittests: Windows + Python 3.14'
    207  dependsOn: decision
    208  condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
    209  pool:
    210    vmImage: 'windows-latest'
    211  steps:
    212  - task: UsePythonVersion@0
    213    inputs:
    214      versionSpec: '3.14'
    215      addToPath: false
    216  - template: tools/ci/azure/checkout.yml
    217  - template: tools/ci/azure/tox_pytest.yml
    218    parameters:
    219      directory: tools/wptrunner/
    220      toxenv: py314
    221 
    222 - job: wpt_integration_win_py38
    223  displayName: 'tools/wpt/ tests: Windows + Python 3.8'
    224  dependsOn: decision
    225  condition: dependencies.decision.outputs['test_jobs.wpt_integration']
    226  pool:
    227    vmImage: 'windows-latest'
    228  steps:
    229  # full checkout required
    230  - task: UsePythonVersion@0
    231    inputs:
    232      versionSpec: '3.8'
    233  - template: tools/ci/azure/update_hosts.yml
    234  - template: tools/ci/azure/update_manifest.yml
    235  - template: tools/ci/azure/tox_pytest.yml
    236    parameters:
    237      directory: tools/wpt/
    238      toxenv: py38
    239 
    240 - job: wpt_integration_win_py314
    241  displayName: 'tools/wpt/ tests: Windows + Python 3.14'
    242  dependsOn: decision
    243  condition: dependencies.decision.outputs['test_jobs.wpt_integration']
    244  pool:
    245    vmImage: 'windows-latest'
    246  steps:
    247  # full checkout required
    248  - task: UsePythonVersion@0
    249    inputs:
    250      versionSpec: '3.14'
    251  - template: tools/ci/azure/update_hosts.yml
    252  - template: tools/ci/azure/update_manifest.yml
    253  - template: tools/ci/azure/tox_pytest.yml
    254    parameters:
    255      directory: tools/wpt/
    256      toxenv: py314
    257 
    258 - job: results_edge_stable
    259  displayName: 'all tests: Edge Stable'
    260  condition: |
    261    or(eq(variables['Build.SourceBranch'], 'refs/heads/epochs/daily'),
    262       eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_stable'),
    263       and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_stable']))
    264  strategy:
    265    parallel: 10 # chosen to make runtime ~2h
    266  timeoutInMinutes: 180
    267  pool:
    268    vmImage: 'windows-latest'
    269  steps:
    270  - task: UsePythonVersion@0
    271    inputs:
    272      versionSpec: '3.14'
    273  - template: tools/ci/azure/system_info.yml
    274  - template: tools/ci/azure/checkout.yml
    275  - template: tools/ci/azure/install_certs.yml
    276  - template: tools/ci/azure/install_edge.yml
    277    parameters:
    278      channel: stable
    279  - template: tools/ci/azure/update_hosts.yml
    280  - template: tools/ci/azure/update_manifest.yml
    281  - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel stable edge
    282    displayName: 'Run tests (Edge Stable)'
    283  - task: PublishBuildArtifacts@1
    284    displayName: 'Publish results'
    285    inputs:
    286      artifactName: 'edge-stable-results'
    287  - template: tools/ci/azure/publish_logs.yml
    288  - template: tools/ci/azure/sysdiagnose.yml
    289 - template: tools/ci/azure/fyi_hook.yml
    290  parameters:
    291    dependsOn: results_edge_stable
    292    artifactName: edge-stable-results
    293 
    294 - job: results_edge_dev
    295  displayName: 'all tests: Edge Dev'
    296  condition: |
    297    or(eq(variables['Build.SourceBranch'], 'refs/heads/epochs/three_hourly'),
    298       eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_dev'),
    299       and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_dev']))
    300  strategy:
    301    parallel: 10 # chosen to make runtime ~2h
    302  timeoutInMinutes: 180
    303  pool:
    304    vmImage: 'windows-latest'
    305  steps:
    306  - task: UsePythonVersion@0
    307    inputs:
    308      versionSpec: '3.14'
    309  - template: tools/ci/azure/system_info.yml
    310  - template: tools/ci/azure/checkout.yml
    311  - template: tools/ci/azure/install_certs.yml
    312  - template: tools/ci/azure/install_edge.yml
    313    parameters:
    314      channel: dev
    315  - template: tools/ci/azure/configure_watson.yml
    316  - template: tools/ci/azure/update_hosts.yml
    317  - template: tools/ci/azure/update_manifest.yml
    318  - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel dev edge
    319    displayName: 'Run tests (Edge Dev)'
    320  - task: PublishBuildArtifacts@1
    321    displayName: 'Publish results'
    322    inputs:
    323      artifactName: 'edge-dev-results'
    324  - template: tools/ci/azure/publish_logs.yml
    325  - template: tools/ci/azure/sysdiagnose.yml
    326 - template: tools/ci/azure/fyi_hook.yml
    327  parameters:
    328    dependsOn: results_edge_dev
    329    artifactName: edge-dev-results
    330 
    331 - job: results_edge_canary
    332  displayName: 'all tests: Edge Canary'
    333  condition: |
    334    or(eq(variables['Build.SourceBranch'], 'refs/heads/epochs/weekly'),
    335       eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_canary'),
    336       and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_canary']))
    337  strategy:
    338    parallel: 10 # chosen to make runtime ~2h
    339  timeoutInMinutes: 180
    340  pool:
    341    vmImage: 'windows-latest'
    342  steps:
    343  - task: UsePythonVersion@0
    344    inputs:
    345      versionSpec: '3.14'
    346  - template: tools/ci/azure/checkout.yml
    347  - template: tools/ci/azure/install_certs.yml
    348  - template: tools/ci/azure/install_edge.yml
    349    parameters:
    350      channel: canary
    351  - template: tools/ci/azure/update_hosts.yml
    352  - template: tools/ci/azure/update_manifest.yml
    353  - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel canary edge
    354    displayName: 'Run tests (Edge Canary)'
    355  - task: PublishBuildArtifacts@1
    356    displayName: 'Publish results'
    357    inputs:
    358      artifactName: 'edge-canary-results'
    359  - template: tools/ci/azure/publish_logs.yml
    360  - template: tools/ci/azure/sysdiagnose.yml
    361 - template: tools/ci/azure/fyi_hook.yml
    362  parameters:
    363    dependsOn: results_edge_canary
    364    artifactName: edge-canary-results
    365 
    366 - job: results_wktr_preview
    367  displayName: 'all tests: WebKitTestRunner'
    368  condition: |
    369    or(eq(variables['Build.SourceBranch'], 'refs/heads/triggers/wktr_preview'),
    370       and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_wktr_preview']))
    371  strategy:
    372    parallel: 8 # chosen to make runtime ~2h
    373  timeoutInMinutes: 180
    374  pool:
    375    vmImage: 'macOS-14'
    376  steps:
    377  - task: UsePythonVersion@0
    378    inputs:
    379      versionSpec: '3.14'
    380  - template: tools/ci/azure/checkout.yml
    381  - template: tools/ci/azure/install_certs.yml
    382  - template: tools/ci/azure/color_profile.yml
    383  - template: tools/ci/azure/update_hosts.yml
    384  - template: tools/ci/azure/update_manifest.yml
    385  - script: |
    386      set -eux -o pipefail
    387      export SYSTEM_VERSION_COMPAT=0
    388      ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel experimental --install-browser --yes wktr
    389    displayName: 'Run tests'
    390  - task: PublishBuildArtifacts@1
    391    displayName: 'Publish results'
    392    inputs:
    393      artifactName: 'wktr-preview-results'
    394  - template: tools/ci/azure/publish_logs.yml
    395  - template: tools/ci/azure/sysdiagnose.yml
    396 - template: tools/ci/azure/fyi_hook.yml
    397  parameters:
    398    dependsOn: results_wktr_preview
    399    artifactName: wktr-preview-results