| steps: |
| - task: UsePythonVersion@0 |
| inputs: |
| versionSpec: $(PYTHON_VERSION) |
| addToPath: true |
| architecture: $(PYTHON_ARCH) |
| condition: not(contains(variables['PYTHON_VERSION'], 'PyPy')) |
| - powershell: | |
| # UsePythonVersion only supports pypy3.6, we need 3.8 |
| # https://github.com/microsoft/azure-pipelines-tasks/pull/15553 |
| $url = "https://downloads.python.org/pypy/pypy3.8-v7.3.9-win64.zip" |
| $output = "pypy.zip" |
| $wc = New-Object System.Net.WebClient |
| $wc.DownloadFile($url, $output) |
| echo "downloaded $url to $output" |
| mkdir pypy3 |
| Expand-Archive $output -DestinationPath pypy3 |
| # move pypy3/pypy-c-*/* pypy3 |
| move pypy3/pypy*/* pypy3 |
| $pypypath = Join-Path (Get-Item .).FullName pypy3 |
| $env:Path = $pypypath + ";" + $env:Path |
| setx PATH $env:Path |
| python -mensurepip |
| echo "##vso[task.prependpath]$pypypath" |
| condition: contains(variables['PYTHON_VERSION'], 'PyPy') |
| displayName: "Install PyPy3.8 " |
| |
| - script: python -m pip install --upgrade pip wheel |
| displayName: 'Install tools' |
| |
| - script: python -m pip install -r test_requirements.txt |
| displayName: 'Install dependencies; some are optional to avoid test skips' |
| |
| - powershell: | |
| choco install -y mingw --forcex86 --force --version=7.3.0 |
| refreshenv |
| displayName: 'Install 32-bit mingw for 32-bit builds' |
| condition: eq(variables['BITS'], 32) |
| |
| - powershell: | |
| $ErrorActionPreference = "Stop" |
| # Download and get the path to "openblas.a". We cannot copy it |
| # to $PYTHON_EXE's directory since that is on a different drive which |
| # mingw does not like. Instead copy it to a directory and set OPENBLAS, |
| # since OPENBLAS will be picked up by the openblas discovery |
| $target = $(python tools/openblas_support.py) |
| mkdir openblas |
| echo "Copying $target to openblas/" |
| cp $target openblas/ |
| displayName: 'Download / Install OpenBLAS' |
| |
| # NOTE: for Windows builds it seems much more tractable to use runtests.py |
| # vs. manual setup.py and then runtests.py for testing only |
| |
| - powershell: | |
| ls openblas |
| If ($(BITS) -eq 32) { |
| $env:CFLAGS = "-m32" |
| $env:LDFLAGS = "-m32" |
| $env:PATH = "C:\\ProgramData\\chocolatey\\lib\\mingw\\tools\\install\\mingw$(BITS)\\bin;" + $env:PATH |
| } |
| If ( Test-Path env:NPY_USE_BLAS_ILP64 ) { |
| $env:OPENBLAS64_ = "openblas" |
| } else { |
| $env:OPENBLAS = "openblas" |
| } |
| python -c "from tools import openblas_support; openblas_support.make_init('numpy')" |
| python -m pip wheel -v -v -v --no-build-isolation --no-use-pep517 --wheel-dir=dist . |
| |
| ls dist -r | Foreach-Object { |
| python -m pip install $_.FullName |
| } |
| displayName: 'Build NumPy' |
| |
| - script: python runtests.py -n --show-build-log --mode=$(TEST_MODE) -- -rsx --junitxml=junit/test-results.xml |
| displayName: 'Run NumPy Test Suite' |
| |
| - task: PublishTestResults@2 |
| condition: succeededOrFailed() |
| inputs: |
| testResultsFiles: '**/test-*.xml' |
| failTaskOnFailedTests: true |
| testRunTitle: 'Publish test results for Python $(PYTHON_VERSION) $(BITS)-bit $(TEST_MODE) Windows' |