Skip to content

Experiment to improve CI #4

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

Closed
wants to merge 40 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
dec8fae
GA: Switch to a single-file-for-CI
pradyunsg Apr 8, 2020
e58bc6d
Change the naming scheme and fix the actual check
pradyunsg Apr 8, 2020
a889ef4
New name + CI tests!
pradyunsg Apr 8, 2020
a54c14a
Iterate on name + don't fail fast
pradyunsg Apr 9, 2020
4e70bcf
pypy -> pypy2
pradyunsg Apr 9, 2020
90d2363
Don't use separate workers for testing
pradyunsg Apr 9, 2020
f68fa00
Separate the vendoring check
pradyunsg Apr 9, 2020
9e93872
Add nice-looking names
pradyunsg Apr 9, 2020
6305765
Also do release-workflow-dry-run in CI
pradyunsg Apr 9, 2020
abb6cc1
Let packaging happen w/o linting passing
pradyunsg Apr 9, 2020
7692e87
Drop PyPy from GitHub Actions
pradyunsg Apr 9, 2020
e4425b2
Better error reporting in the failing test
pradyunsg Apr 9, 2020
314f741
Use OS as a suffix in name
pradyunsg Apr 9, 2020
e0e451a
Oops
pradyunsg Apr 9, 2020
fbd1234
Add Windows because we have capacity
pradyunsg Apr 9, 2020
a2031a3
Reorder to caches -> setup -> checks
pradyunsg Apr 9, 2020
b535251
Drop Windows from Matrix
pradyunsg Apr 9, 2020
29d7ff1
Easier to duplicate name for tests
pradyunsg Apr 9, 2020
7797d7e
Add --verbose to test syntax, and reflow
pradyunsg Apr 9, 2020
41099f8
Reduce the load on Travis CI
pradyunsg Apr 9, 2020
4f9cab9
Nicer names
pradyunsg Apr 9, 2020
727a52a
AP: Tweak name
pradyunsg Apr 9, 2020
c1296fe
AP: Rename and remove stuff!
pradyunsg Apr 9, 2020
dbd529b
AP: Remove --use-venv configuration from Windows tests
pradyunsg Apr 9, 2020
4468aef
AP: Break up Windows tests into multiple workers
pradyunsg Apr 9, 2020
d9ecd81
AP: Apparently 'null' doesn't work
pradyunsg Apr 9, 2020
76f8032
AP: tweak names
pradyunsg Apr 9, 2020
6c1cad1
AP: Trim Windows tests
pradyunsg Apr 9, 2020
87f8a46
AP: try strings?
pradyunsg Apr 9, 2020
dad4d20
AP: maybe?
pradyunsg Apr 9, 2020
227272c
Okay, help me here plez.
pradyunsg Apr 9, 2020
e966b4f
AP: apparently, this works?
pradyunsg Apr 9, 2020
e2f902b
AP: Time for full on drama mode
pradyunsg Apr 9, 2020
5f74257
AP: Is this... the reason...?
pradyunsg Apr 9, 2020
deffdbe
AP: Okay, so... maybe... this?
pradyunsg Apr 9, 2020
dee3bd9
Revert "AP: Time for full on drama mode"
pradyunsg Apr 9, 2020
528f8e6
AP: No such thing as dynamic dispatch
pradyunsg Apr 9, 2020
6caa3b1
AP: Add Group 2
pradyunsg Apr 9, 2020
598b900
AP: Yes, I know I'm stupid.
pradyunsg Apr 9, 2020
300e099
Pin to older virtualenv
pradyunsg Apr 9, 2020
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
36 changes: 0 additions & 36 deletions .azure-pipelines/jobs/package.yml

This file was deleted.

72 changes: 45 additions & 27 deletions .azure-pipelines/jobs/test-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,67 +2,85 @@ parameters:
vmImage:

jobs:
- job: Test_Primary
displayName: Test Primary
- job: Test_Primary_one
displayName: Tests / Windows /

pool:
vmImage: ${{ parameters.vmImage }}
strategy:
matrix:
Python27-x86:
"2.7-x86 / 1":
python.version: '2.7'
python.architecture: x86
Python27-x64:
"2.7 / 1":
python.version: '2.7'
python.architecture: x64
useVenv: true
Python35-x64:
python.version: '3.5'
python.architecture: x64
Python36-x64:
python.version: '3.6'
"3.8 / 1":
python.version: '3.8'
python.architecture: x64
useVenv: true
Python37-x64:
python.version: '3.7'

steps:
- template: ../steps/run-tests-windows.yml
parameters:
testGroup: one

- job: Test_Primary_two
displayName: Tests / Windows /

pool:
vmImage: ${{ parameters.vmImage }}
strategy:
matrix:
"2.7-x86 / 2":
python.version: '2.7'
python.architecture: x86
"2.7 / 2":
python.version: '2.7'
python.architecture: x64
Python38-x64:
"3.8 / 2":
python.version: '3.8'
python.architecture: x64
maxParallel: 6

steps:
- template: ../steps/run-tests-windows.yml
parameters:
runIntegrationTests: true
useVenv: '$(useVenv)'
testGroup: two

- job: Test_Secondary
displayName: Test Secondary
displayName: Tests / Windows /
# Don't run integration tests for these runs
# Run after Test_Primary so we don't devour time and jobs if tests are going to fail
dependsOn: Test_Primary
# Run after Test_Primary_* so we don't devour time and jobs.
dependsOn:
- Test_Primary_one
- Test_Primary_two

pool:
vmImage: ${{ parameters.vmImage }}
strategy:
matrix:
# This is for Windows, so test x86 builds
Python35-x86:
3.5:
python.version: '3.5'
python.architecture: x64
3.6:
python.version: '3.6'
python.architecture: x64
3.7:
python.version: '3.7'
python.architecture: x64
3.5-x86:
python.version: '3.5'
python.architecture: x86
Python36-x86:
3.6-x86:
python.version: '3.6'
python.architecture: x86
Python37-x86:
3.7-x86:
python.version: '3.7'
python.architecture: x86
Python38-x86:
3.8-x86:
python.version: '3.8'
python.architecture: x86
maxParallel: 6

steps:
- template: ../steps/run-tests-windows.yml
parameters:
runIntegrationTests: false
testGroup: unit
41 changes: 0 additions & 41 deletions .azure-pipelines/jobs/test.yml

This file was deleted.

8 changes: 0 additions & 8 deletions .azure-pipelines/linux.yml

This file was deleted.

8 changes: 0 additions & 8 deletions .azure-pipelines/macos.yml

This file was deleted.

33 changes: 21 additions & 12 deletions .azure-pipelines/steps/run-tests-windows.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
parameters:
runIntegrationTests:
useVenv: false
- name: testGroup
type: string
values:
- unit
- one
- two

steps:
- task: UsePythonVersion@0
Expand Down Expand Up @@ -28,27 +32,32 @@ steps:
- bash: pip install --upgrade 'virtualenv<20' setuptools tox
displayName: Install Tox

- script: tox -e py -- -m unit -n auto --junit-xml=junit/unit-test.xml
env:
TEMP: "R:\\Temp"
displayName: Tox run unit tests
# Lots of fun logic, for... running the correct tests.
- ${{ if in(parameters.testGroup, 'unit', 'one') }}:
- script: tox -e py -- -m unit -n auto --junit-xml=junit/unit-test.xml
env:
TEMP: "R:\\Temp"
displayName: Run unit tests

- ${{ if eq(parameters.runIntegrationTests, 'true') }}:
- ${{ if in(parameters.testGroup, 'one', 'two') }}:
- powershell: |
# Fix Git SSL errors
pip install certifi tox
pip install certifi
python -m certifi > cacert.txt
$env:GIT_SSL_CAINFO = $(Get-Content cacert.txt)

# Shorten paths to get under MAX_PATH or else integration tests will fail
# https://bugs.python.org/issue18199
$env:TEMP = "R:\Temp"

tox -e py -- $env:USE_VENV_ARG -m integration -n auto --duration=5 --junit-xml=junit/integration-test.xml
displayName: Tox run integration tests
pip install tox
tox -e py -- -k $env:SELECTOR -m integration -n auto --duration=5 --junit-xml=junit/integration-test.xml
env:
${{ if eq(parameters.useVenv, 'true') }}:
USE_VENV_ARG: "--use-venv"
${{ if eq(parameters.testGroup, 'one') }}:
SELECTOR: "not test_install"
${{ if eq(parameters.testGroup, 'two') }}:
SELECTOR: "test_install"
displayName: Run integration tests

- task: PublishTestResults@2
displayName: Publish Test Results
Expand Down
25 changes: 0 additions & 25 deletions .azure-pipelines/steps/run-tests.yml

This file was deleted.

4 changes: 0 additions & 4 deletions .azure-pipelines/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,3 @@ jobs:
- template: jobs/test-windows.yml
parameters:
vmImage: vs2017-win2016

- template: jobs/package.yml
parameters:
vmImage: vs2017-win2016
Loading