8000 DSNC-2173 : Move Windows CI to Azure by angloyna · Pull Request #10176 · conda/conda · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

DSNC-2173 : Move Windows CI to Azure #10176

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

Merged
merged 23 commits into from
Aug 21, 2020
Merged

DSNC-2173 : Move Windows CI to Azure #10176

merged 23 commits into from
Aug 21, 2020

Conversation

angloyna
Copy link
Contributor
@angloyna angloyna commented Aug 20, 2020

So much thanks to @mlline00 for this work to translate our CI to azure pipelines.

I pruned the build matrix to:

  • py27 win64 unit/integration
  • py37 win64 unit/integration

The appveyor tests for py27 appear to have been for win32, so let me know if these are the correct targets or if we want more/less (py38 might need a little work to fix conflicts when creating the test environment).

The free tier for public azure projects allow for 10 concurrent jobs, with a 360 minute limit per job. This should help avoid timeouts we've seen on appveyor.

mlline00 and others added 16 commits May 22, 2020 18:12
Enables python 2.7 & 3.7 unit tests for win-32 and win-64 on the vs2017-win2016 microsoft hosted agent.

Integration tests are not enabled as this configuration identified two issues in the unit testing framework:
1 - python 2.7 win-64 tests do not work
2 - One test has an issue when the source tree is not on the C drive.
The Microsoft hosted image makes no guarantees about where the source is located.  The current image checks it out onto the D drive.
Detected bug while migrating python 2.7 windows unit tests to Azure Pipelines. Previous CI platform ran windows unit tests in a 32-bit environment which does not exhibit this bug.

Recall, python 2 has int and long types, while python 3 has only int. logic.py contains int specific logic which does properly handle longs.

sys.maxsize is an int on win-32 platform, but a long on win-64. This change uses sys.maxint when running under python 2, and sys.maxisze otherwise.
Significant extension to pipeline setup
- Improved logging and display in the UI
- Create a junction on host to bring conda, source, and temp folder all onto the same path.  There are some tests which use relative paths and require all three be on the same drive. A junction is used to allow spanning local disk volumes.
- Current CI tests push python into the base conda environment on the build host. This fails miserably for python 2.7 32-bit. Using a named environment seems to work, but there are comments in the test suite warning against using anything other than the base python.
- Test results are published directly in the Azure Pipelines UI
- Code coverage reports are not posted since Azure Pipelines cannot aggregate multiple coverage reports from a single test run.
- Set a 90 minute timeout as the longest running successful tests take 60-70 minutes
No need to fail tests because a script creates a Windows path with C:\ instead of c:\
Something was tripping a R6034 error: "An application has made an attempt to load the C runtime library incorrectly". Unable to sort out which packages were root cause. Only solution was to download and install a new miniconda 2.7 x86 on the host. Decided to disable the test instead.
Address persistent MemoryErrors on 32-bit  platforms by splitting integration tests into two runs.
tests\data\conda_format_repo\win-64 subdir has multiple zlib versions in repodata.json. Since the index is a dict, python 2.7 tests might see either zlib version first. One versoin of zlib (1.2.11) has both a bzip and conda package, while the other (1.2.8) has only a bzip. The point of the test is to ensure conda packages are preferred over bzip, so the test always fails if zlib 1.2.8 happens to be the first key found while iterating the index. Python 3.7 preserves insertion order, so the tests is stable in that version.
…tack is updated, and reduce environment clutter
@cla-bot cla-bot bot added the cla-signed [bot] added once the contributor has signed the CLA label Aug 20, 2020
@angloyna angloyna marked this pull request as ready for review August 21, 2020 01:29
@angloyna angloyna requested a review from a team as a code owner August 21, 2020 01:29
@angloyna angloyna changed the title WIP Move Windows CI to Azure DSNC-2173 : Move Windows CI to Azure Aug 21, 2020
@chenghlee chenghlee merged commit 6d1fea1 into conda:master Aug 21, 2020
@angloyna angloyna deleted the azure-pr branch August 21, 2020 17:02
@github-actions
Copy link

Hi there, thank you for your contribution to Conda!

This pull request has been automatically locked since it has not had recent activity after it was closed.

Please open a new issue or pull request if needed.

@github-actions github-actions bot added the locked [bot] locked due to inactivity label Aug 22, 2021
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 22, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cla-signed [bot] added once the contributor has signed the CLA locked [bot] locked due to inactivity
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0