• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1parameters:
2  coverage: false
3  sudo_dependencies: sudo
4  dependencies: apt
5  patchcheck: true
6  xvfb: true
7
8steps:
9- checkout: self
10  clean: true
11  fetchDepth: 5
12
13- script: ${{ parameters.sudo_dependencies }} ./.azure-pipelines/posix-deps-${{ parameters.dependencies }}.sh $(openssl_version)
14  displayName: 'Install dependencies'
15
16- script: ./configure --with-pydebug
17  displayName: 'Configure CPython (debug)'
18
19- script: make -s -j4
20  displayName: 'Build CPython'
21
22- ${{ if eq(parameters.coverage, 'true') }}:
23  - script: ./python -m venv venv && ./venv/bin/python -m pip install -U coverage
24    displayName: 'Set up virtual environment'
25
26  - script: ./venv/bin/python -m test.pythoninfo
27    displayName: 'Display build info'
28
29  - script: |
30      $COMMAND -m coverage run --pylib -m test \
31                --fail-env-changed \
32                -uall,-cpu \
33                --junit-xml=$(build.binariesDirectory)/test-results.xml" \
34                -x test_multiprocessing_fork \
35                -x test_multiprocessing_forkserver \
36                -x test_multiprocessing_spawn \
37                -x test_concurrent_futures
38    displayName: 'Tests with coverage'
39    env:
40      ${{ if eq(parameters.xvfb, 'true') }}:
41        COMMAND: xvfb-run ./venv/bin/python
42      ${{ if ne(parameters.xvfb, 'true') }}:
43        COMMAND: ./venv/bin/python
44
45  - script: ./venv/bin/python -m coverage xml
46    displayName: 'Generate coverage.xml'
47
48  - script: source ./venv/bin/activate && bash <(curl -s https://codecov.io/bash)
49    displayName: 'Publish code coverage results'
50
51
52- ${{ if ne(parameters.coverage, 'true') }}:
53  - script: make pythoninfo
54    displayName: 'Display build info'
55
56  - script: $COMMAND buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
57    displayName: 'Tests'
58    env:
59      ${{ if eq(parameters.xvfb, 'true') }}:
60        COMMAND: xvfb-run make
61      ${{ if ne(parameters.xvfb, 'true') }}:
62        COMMAND: make
63
64- ${{ if eq(parameters.patchcheck, 'true') }}:
65  - script: ./python Tools/scripts/patchcheck.py --travis true
66    displayName: 'Run patchcheck.py'
67    condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
68
69
70- task: PublishTestResults@2
71  displayName: 'Publish Test Results'
72  inputs:
73    testResultsFiles: '$(build.binariesDirectory)/test-results.xml'
74    mergeTestResults: true
75    testRunTitle: $(testRunTitle)
76    platform: $(testRunPlatform)
77  condition: succeededOrFailed()
78