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

Spread Windows CI load #6791

Closed
xavfernandez opened this issue Jul 25, 2019 · 7 comments
Closed

Spread Windows CI load #6791

xavfernandez opened this issue Jul 25, 2019 · 7 comments
Labels
C: tests Testing and related things OS: windows Windows specific type: maintenance Related to Development and Maintenance Processes

Comments

@xavfernandez
Copy link
Member

xavfernandez commented Jul 25, 2019

Follow-up of #6767

Current status:

8 interpreters (2.7, 3.5, 3.6 & 3.7 on x64 & x86) are tested.
Tests are split into 2 categories "unit" or "integration".

interpreter unit integration
2.7 x86 pz p
2.7 x64 pz z
3.5 x86 pz
3.5 x64 pz z
3.6 x86 pz
3.6 x64 p p
3.7 x86 z
3.7 x64 z

p means tested on AppVeyor, z means tested on Azure (and pz on both)

Azure

It takes:

  • ~ 2/3 min for unit tests
  • ~ 33 min for unit + integration tests

and currently performs 8 unit + 2 integration in ~ 43 min

Appveyor

It takes:

  • ~ 2 min for unit tests
  • ~ 10 / 20 min for unit + integration tests (with x64 much faster than x86)

and currently performs 6 unit + 2 integration in ~ 36 min

Suggestion

interpreter unit integration
2.7 x86 z z
2.7 x64 p p
3.5 x86 z
3.5 x64 p p
3.6 x86 z
3.6 x64 p p
3.7 x86 z
3.7 x64 z z

To remove all overlap and prefer x64 over x86 on Appveyor since it seems significantly faster (while appearing the same on Azure).
(Edited: this was a false impression, the difference came from python 2.7 vs 3.6 instead)

Azure would now be testing 5 unit + 2 inte (from 8 +2)
Appveyor would now be testing 3 unit + 3 inte (from 6 + 2)

Edited:

  • moved 3.7 integration to Azure since Appveyor is picky and fails with ERROR: virtualenv is not compatible with this system or executable
@triage-new-issues triage-new-issues bot added the S: needs triage Issues/PRs that need to be triaged label Jul 25, 2019
@xavfernandez xavfernandez added C: tests Testing and related things OS: windows Windows specific type: maintenance Related to Development and Maintenance Processes labels Jul 25, 2019
@triage-new-issues triage-new-issues bot removed the S: needs triage Issues/PRs that need to be triaged label Jul 25, 2019
@webknjaz
Copy link
Member

That's a great idea! I just want to point out that Travis CI also supports Windows so maybe it makes sense to also put 1-2 jobs there?

@pradyunsg
Copy link
Member

My opinion: Travis's Windows support is experimental so I'd prefer to avoid it. 🤷🏻‍♂️

@webknjaz
Copy link
Member

Which may mean that testing in another weird env can reveal more corner cases.

@pradyunsg
Copy link
Member

One of the consequences of #6790 is that AppVeyor should now be "required" for CI. It's still the slowest CI we have, and it only has 1 runner for all PRs.

I propose dropping the 3.6 integration tests from AppVeyor and moving it to Azure Pipelines.

@webknjaz
Copy link
Member

webknjaz commented Aug 5, 2019

Fair enough

@ichard26
Copy link
Member

Is this issue still relevant? Windows CI is split across four GHA jobs and are definitely not the slowest jobs today (MacOS jobs are, example).

@webknjaz
Copy link
Member

No, AppVeyor is no longer in use, neither is Azure Pipelines. And I don't think they're coming back since Pradyun mentioned getting the org into some plan with a lot more GHA compute for free in the winter.

@webknjaz webknjaz closed this as not planned Won't fix, can't repro, duplicate, stale Apr 18, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C: tests Testing and related things OS: windows Windows specific type: maintenance Related to Development and Maintenance Processes
Projects
None yet
Development

No branches or pull requests

4 participants