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

Drop appveyor in favor of azure #6767

Closed
xavfernandez opened this issue Jul 22, 2019 · 12 comments
Closed

Drop appveyor in favor of azure #6767

xavfernandez opened this issue Jul 22, 2019 · 12 comments
Labels
auto-locked Outdated issues that have been locked by automation C: tests Testing and related things OS: windows Windows specific state: needs discussion This needs some more discussion type: maintenance Related to Development and Maintenance Processes

Comments

@xavfernandez
Copy link
Member

We're currently running windows tests on Appveyor & Azure:

On Appveyor, we only get a single worker for all builds that takes roughly 30/31 minutes per build to run:

  • the whole test suite on Python27 & Python36-x64
  • unit test only on Python27-x64, Python35, Python35-x64 & Python36.

While on the azure pipelines we appear to have several workers that take ~ 41 min per build to run:

  • the whole test suite on Python27-x64 & Python36-x64
  • unit test only on Python27-x86, Python35-x86, Python35-x64, Python36-x86, Python37-x64 & Python37-x86

Since tests have started to fail on Appveyor for some unknown reason:
https://ci.appveyor.com/project/pypa/pip/builds/26142589 vs https://ci.appveyor.com/project/pypa/pip/builds/26132882 for the same commit (& https://dev.azure.com/pypa/pip/_build/results?buildId=10128 or https://dev.azure.com/pypa/pip/_build/results?buildId=10183 for the same commit on Azure), it might be the good time to drop the testing on Appveyor ?

@xavfernandez xavfernandez added state: needs discussion This needs some more discussion type: maintenance Related to Development and Maintenance Processes C: tests Testing and related things OS: windows Windows specific labels Jul 22, 2019
@pradyunsg
Copy link
Member

I'm in.

I also want us to eventually clean up the mess that is the 20+ jobs from Azure on CI.

@pfmoore
Copy link
Member

pfmoore commented Jul 22, 2019

I'm fine with this, but we'd need to make the Azure jobs mandatory (so we don't lose the constraint that Windows test runs must pass) and I don't know if we can specify that only some of the Azure builds are mandatory - I don't recall why we originally wanted the Azure builds to be optional, but we should check that those reasons no longer apply.

@xavfernandez
Copy link
Member Author

I've made the "Windows" (and MacOS) Azure checks mandatory while making Appveyor "optional", we'll see in the next PR how it behaves.

@pfmoore
Copy link
Member

pfmoore commented Jul 22, 2019

Cool!

@xavfernandez
Copy link
Member Author

Ok, it seemed to work on #6203 :)

But given that Windows Azure build takes 40+ minutes (which is close to what travis needs with its 30 minute pypy3 builds), I'm wondering if we should not keep Appveyor and try to take advantage of the various CI platforms to better distribute our build times ?
(This would require Appveyor build to be fixed though...)

@pfmoore
Copy link
Member

pfmoore commented Jul 22, 2019

Yeah, Windows test runs are really annoyingly slow. A longer term fix is likely to need reducing the level to which we spawn subprocesses in the test suite (process creation is much more costly on Windows than on Unix, and anecdotally my impression is that this is where the Windows tests take up a lot of their time - but someone needs to do some actual numbers).

Short term, spreading the load is likely the best approach.

@xavfernandez
Copy link
Member Author

Short term, spreading the load is likely the best approach.

Which would mean keeping Appveyor: any idea on how to fix its build ?

@pfmoore
Copy link
Member

pfmoore commented Jul 22, 2019

any idea on how to fix its build

Not really, I'm afraid. An instinctive guess would be some warning output going to stderr rather than stdout, or a stray exit code being 1 rather than 0 (weren't there relatively recent "rationalise logging" commits - some sort of generally harmless difference there causing Windows to have a fit?). But as to why it's intermittent, no idea.

Unfortunately, I doubt I'll have time to look at this soon. So I guess the really short term solution is to use Azure and live with the long test times :-(

@chrahunt
Copy link
Member

#6769 should hopefully fix the CI runs.

@pfmoore
Copy link
Member

pfmoore commented Jul 22, 2019

Nice catch!

@pradyunsg
Copy link
Member

I've gone ahead abs merged the CI fix! That's a nice find @chrahunt! :)

@pradyunsg
Copy link
Member

I'm also going to take the liberty of closing this issue since Appveyor should be fixed by the PR and switching to Azure is also done.

@lock lock bot added the auto-locked Outdated issues that have been locked by automation label Aug 22, 2019
@lock lock bot locked as resolved and limited conversation to collaborators Aug 22, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
auto-locked Outdated issues that have been locked by automation C: tests Testing and related things OS: windows Windows specific state: needs discussion This needs some more discussion type: maintenance Related to Development and Maintenance Processes
Projects
None yet
Development

No branches or pull requests

4 participants