diff options
author | Ralf Gommers <ralf.gommers@gmail.com> | 2023-02-22 22:05:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-22 22:05:58 +0100 |
commit | e4fc0895139b200f183d91bf265c9b3f27d6d544 (patch) | |
tree | 454638962cf0ce46ac0def94a7844616350be0ef /.github | |
parent | b175756dd358f659a0249461934cae37bae534f3 (diff) | |
parent | da6eeb81d26d2c9e4d3870828add330cd5e602a4 (diff) | |
download | numpy-e4fc0895139b200f183d91bf265c9b3f27d6d544.tar.gz |
Merge pull request #23165 from mattip/meson_windows
BLD: add a meson windows build
[ci skip]
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/linux_meson.yml | 6 | ||||
-rw-r--r-- | .github/workflows/wheels.yml | 2 | ||||
-rw-r--r-- | .github/workflows/windows_meson.yml | 88 |
3 files changed, 90 insertions, 6 deletions
diff --git a/.github/workflows/linux_meson.yml b/.github/workflows/linux_meson.yml index d1d20b87d..b03144a12 100644 --- a/.github/workflows/linux_meson.yml +++ b/.github/workflows/linux_meson.yml @@ -1,10 +1,6 @@ name: Test Meson build (Linux) on: - push: - branches: - - main - - maintenance/** pull_request: branches: - main @@ -26,7 +22,7 @@ permissions: jobs: meson_devpy: - if: "github.repository == 'numpy/numpy' && !contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[skip github]')" + if: "github.repository == 'numpy/numpy'" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1f9b8c027..681981e8e 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -194,7 +194,7 @@ jobs: python -m pip install dist/*.gz pip install -r test_requirements.txt cd .. # Can't import numpy within numpy src directory - python -c "import numpy; print(numpy.__version__); numpy.test();" + python -c "import numpy, sys; print(numpy.__version__); sys.exit(numpy.test() is False)" - name: Check README rendering for PyPI run: | diff --git a/.github/workflows/windows_meson.yml b/.github/workflows/windows_meson.yml new file mode 100644 index 000000000..9e82d8fce --- /dev/null +++ b/.github/workflows/windows_meson.yml @@ -0,0 +1,88 @@ +name: Test Meson build (Windows) + +on: + pull_request: + branches: + - main + - maintenance/** + +env: + PYTHON_VERSION: 3.11 + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +permissions: + contents: read # to fetch code (actions/checkout) + +jobs: + meson: + name: Meson windows build/test + runs-on: windows-2019 + # if: "github.repository == 'numpy/numpy'" + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + + - name: Install dependencies + run: | + pip install -r build_requirements.txt + - name: openblas-libs + run: | + # Download and install pre-built OpenBLAS library + # with 32-bit interfaces + # Unpack it in the pkg-config hardcoded path + choco install unzip -y + choco install wget -y + choco install -y --checksum 6004DF17818F5A6DBF19CB335CC92702 pkgconfiglite + wget https://anaconda.org/multibuild-wheels-staging/openblas-libs/v0.3.21/download/openblas-v0.3.21-win_amd64-gcc_10_3_0.zip + unzip -d c:\opt openblas-v0.3.21-win_amd64-gcc_10_3_0.zip + echo "PKG_CONFIG_PATH=c:\opt\64\lib\pkgconfig;" >> $env:GITHUB_ENV + - name: meson-configure + run: | + meson setup build --prefix=$PWD\build-install -Ddebug=false --optimization 2 --vsenv + - name: meson-build + run: | + meson compile -C build -v + + - name: meson-install + run: | + cd build + meson install --no-rebuild + - name: build-path + run: | + echo "installed_path=$PWD\build-install\Lib\site-packages" >> $env:GITHUB_ENV + - name: post-install + run: | + $numpy_path = "${env:installed_path}\numpy" + $libs_path = "${numpy_path}\.libs" + mkdir ${libs_path} + $ob_path = "C:/opt/64/bin/" + cp $ob_path/*.dll $libs_path + # Write _distributor_init.py to load .libs DLLs. + python -c "from tools import openblas_support; openblas_support.make_init(r'${numpy_path}')" + + - name: prep-test + run: | + echo "PYTHONPATH=${env:installed_path}" >> $env:GITHUB_ENV + python -m pip install -r test_requirements.txt + python -m pip install threadpoolctl + + - name: test + run: | + mkdir tmp + cd tmp + echo "============================================" + python -c "import numpy; print(numpy.show_runtime())" + echo "============================================" + echo "LASTEXITCODE is '$LASTEXITCODE'" + python -c "import numpy, sys; sys.exit(numpy.test(verbose=3) is False)" + echo "LASTEXITCODE is '$LASTEXITCODE'" |