steps: - script: git submodule update --init displayName: 'Fetch submodules' - task: UsePythonVersion@0 inputs: versionSpec: $(PYTHON_VERSION) addToPath: true architecture: $(PYTHON_ARCH) - 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: | # rtools 42+ does not support 32 bits builds. choco install -y rtools --noprogress --force --version=4.0.0.20220206 echo "##vso[task.setvariable variable=RTOOLS40_HOME]c:\rtools40" displayName: 'Install rtools' - powershell: | $ErrorActionPreference = "Stop" # Download and get the path to "openblas". 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 -r $target/* openblas/ $env:OPENBLAS = $target 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 = "$env:RTOOLS40_HOME\\mingw32\\bin;$env:PATH" } Else { $env:PATH = "$env:RTOOLS40_HOME\\mingw64\\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 -m pip install threadpoolctl python tools/openblas_support.py --check_version displayName: 'Check OpenBLAS version' - powershell: | If ($(BITS) -eq 32) { $env:CFLAGS = "-m32" $env:LDFLAGS = "-m32" $env:PATH = "$env:RTOOLS40_HOME\\mingw32\\bin;$env:PATH" } Else { $env:PATH = "$env:RTOOLS40_HOME\\mingw64\\bin;$env:PATH" } 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'