summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2018-12-01 09:45:03 -0800
committerGitHub <noreply@github.com>2018-12-01 09:45:03 -0800
commit69addfdfeee4226f723bb1f8d6f583221725319a (patch)
tree57cda2213f602a179b176a548a0e86f70dc2f2ee
parent144197146dec4097baa2783fdd28762015d0e32b (diff)
parenta120c515038eca8a19b3efb11bb20239f6ab2ac4 (diff)
downloadnumpy-69addfdfeee4226f723bb1f8d6f583221725319a.tar.gz
Merge pull request #12466 from tylerjereddy/openblas_win_azure
TST: use openblas for Windows CI
-rw-r--r--azure-pipelines.yml50
1 files changed, 48 insertions, 2 deletions
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 3052b81b8..a6c1925c5 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -85,6 +85,11 @@ jobs:
- job: Windows
pool:
vmIMage: 'VS2017-Win2016'
+ variables:
+ # openblas URLs from numpy-wheels
+ # appveyor / Windows config
+ OPENBLAS_32: "https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com/openblas-v0.3.0-win32-gcc_7_1_0.zip"
+ OPENBLAS_64: "https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com/openblas-v0.3.0-win_amd64-gcc_7_1_0.zip"
strategy:
maxParallel: 6
matrix:
@@ -92,28 +97,40 @@ jobs:
PYTHON_VERSION: '3.6'
PYTHON_ARCH: 'x86'
TEST_MODE: fast
+ OPENBLAS: $(OPENBLAS_32)
+ BITS: 32
Python37-32bit-fast:
PYTHON_VERSION: '3.7'
PYTHON_ARCH: 'x86'
TEST_MODE: fast
+ OPENBLAS: $(OPENBLAS_32)
+ BITS: 32
Python27-64bit-fast:
PYTHON_VERSION: '2.7'
PYTHON_ARCH: 'x64'
TEST_MODE: fast
+ OPENBLAS: $(OPENBLAS_64)
+ BITS: 64
Python35-64bit-full:
PYTHON_VERSION: '3.5'
PYTHON_ARCH: 'x64'
TEST_MODE: full
+ OPENBLAS: $(OPENBLAS_64)
+ BITS: 64
Python36-64bit-full:
PYTHON_VERSION: '3.6'
PYTHON_ARCH: 'x64'
TEST_MODE: full
INSTALL_PICKLE5: 1
+ OPENBLAS: $(OPENBLAS_64)
+ BITS: 64
Python37-64bit-full:
PYTHON_VERSION: '3.7'
PYTHON_ARCH: 'x64'
TEST_MODE: full
INSTALL_PICKLE5: 1
+ OPENBLAS: $(OPENBLAS_64)
+ BITS: 64
steps:
- task: UsePythonVersion@0
inputs:
@@ -130,14 +147,43 @@ jobs:
condition: eq(variables['PYTHON_VERSION'], '2.7')
- script: python -m pip install --upgrade pip setuptools wheel
displayName: 'Install tools'
+ - powershell: |
+ $wc = New-Object net.webclient
+ $wc.Downloadfile("$(OPENBLAS)", "openblas.zip")
+ $tmpdir = New-TemporaryFile | %{ rm $_; mkdir $_ }
+ Expand-Archive "openblas.zip" $tmpdir
+ $pyversion = python -c "from __future__ import print_function; import sys; print(sys.version.split()[0])"
+ Write-Host "Python Version: $pyversion"
+ $target = "C:\\hostedtoolcache\\windows\\Python\\$pyversion\\$(PYTHON_ARCH)\\lib\\openblas.a"
+ Write-Host "target path: $target"
+ cp $tmpdir\$(BITS)\lib\libopenblas_v0.3.0-gcc_7_1_0.a $target
+ displayName: 'Download / Install OpenBLAS'
+ - powershell: |
+ choco install -y mingw --forcex86 --force
+ displayName: 'Install 32-bit mingw for 32-bit builds'
+ condition: eq(variables['BITS'], 32)
- script: python -m pip install cython nose pytz pytest
displayName: 'Install dependencies; some are optional to avoid test skips'
# NOTE: for Windows builds it seems much more tractable to use runtests.py
# vs. manual setup.py and then runtests.py for testing only
- script: if [%INSTALL_PICKLE5%]==[1] python -m pip install pickle5
displayName: 'Install optional pickle5 backport (only for python3.6 and 3.7)'
- - script: python runtests.py --show-build-log --mode=$(TEST_MODE) -- -rsx --junitxml=junit/test-results.xml
- displayName: 'Build NumPy & Run Full NumPy Test Suite'
+ - powershell: |
+ If ($(BITS) -eq 32) {
+ $env:NPY_DISTUTILS_APPEND_FLAGS = 1
+ $env:CFLAGS = "-m32"
+ $env:LDFLAGS = "-m32"
+ $env:PATH = "C:\\tools\\mingw32\\bin;" + $env:PATH
+ refreshenv
+ }
+ pip wheel -v -v -v --wheel-dir=dist .
+
+ ls dist -r | Foreach-Object {
+ 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
inputs:
testResultsFiles: '**/test-*.xml'