bump numpy to 2.0 #140
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
permissions: read-all | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_x86_64 | |
python-arch: 'x86_64' | |
python-version: '3.8' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_x86_64 | |
python-arch: 'x86_64' | |
python-version: '3.9' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_x86_64 | |
python-arch: 'x86_64' | |
python-version: '3.10' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_x86_64 | |
python-arch: 'x86_64' | |
python-version: '3.11' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_x86_64 | |
python-arch: 'x86_64' | |
python-version: '3.12' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_aarch64 | |
python-arch: 'aarch64' | |
python-version: '3.8' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_aarch64 | |
python-arch: 'aarch64' | |
python-version: '3.9' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_aarch64 | |
python-arch: 'aarch64' | |
python-version: '3.10' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_aarch64 | |
python-arch: 'aarch64' | |
python-version: '3.11' | |
numpy-version: '2.0.*' | |
- os-image: ubuntu-latest | |
os-name: linux | |
docker-image: quay.io/pypa/manylinux2014_aarch64 | |
python-arch: 'aarch64' | |
python-version: '3.12' | |
numpy-version: '2.0.*' | |
- os-image: macos-12 | |
os-name: mac | |
macos-min-version: '10.9' | |
python-arch: 'x86_64' | |
python-version: '3.8' | |
numpy-version: '2.0.*' | |
- os-image: macos-12 | |
os-name: mac | |
macos-min-version: '10.9' | |
python-arch: 'x86_64' | |
python-version: '3.9' | |
numpy-version: '2.0.*' | |
- os-image: macos-12 | |
os-name: mac | |
macos-min-version: '10.9' | |
python-arch: 'x86_64' | |
python-version: '3.10' | |
numpy-version: '2.0.*' | |
- os-image: macos-12 | |
os-name: mac | |
macos-min-version: '10.9' | |
python-arch: 'x86_64' | |
python-version: '3.11' | |
numpy-version: '2.0.*' | |
- os-image: macos-12 | |
os-name: mac | |
macos-min-version: '10.9' | |
python-arch: 'x86_64' | |
python-version: '3.12' | |
numpy-version: '2.0.*' | |
- os-image: macos-14 # M1 | |
os-name: mac | |
python-arch: arm64 | |
macos-min-version: '11.0' | |
python-version: '3.10' | |
numpy-version: '2.0.*' | |
- os-image: macos-14 # M1 | |
os-name: mac | |
python-arch: arm64 | |
macos-min-version: '11.0' | |
python-version: '3.11' | |
numpy-version: '2.0.*' | |
- os-image: macos-14 # M1 | |
os-name: mac | |
python-arch: arm64 | |
macos-min-version: '11.0' | |
python-version: '3.12' | |
numpy-version: '2.0.*' | |
- os-image: windows-2019 | |
os-name: windows | |
python-arch: 'x86_64' | |
python-version: '3.8' | |
numpy-version: '2.0.*' | |
- os-image: windows-2019 | |
os-name: windows | |
python-arch: 'x86_64' | |
python-version: '3.9' | |
numpy-version: '2.0.*' | |
- os-image: windows-2019 | |
os-name: windows | |
python-arch: 'x86_64' | |
python-version: '3.10' | |
numpy-version: '2.0.*' | |
- os-image: windows-2019 | |
os-name: windows | |
python-arch: 'x86_64' | |
python-version: '3.11' | |
numpy-version: '2.0.*' | |
- os-image: windows-2019 | |
os-name: windows | |
python-arch: 'x86_64' | |
python-version: '3.12' | |
numpy-version: '2.0.*' | |
runs-on: ${{ matrix.config.os-image }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up QEMU | |
if: matrix.config.python-arch == 'aarch64' | |
uses: docker/setup-qemu-action@v3 | |
- name: Build wheels (Linux) | |
if: matrix.config.os-name == 'linux' | |
run: docker run --rm -e PYTHON_ARCH -e PYTHON_VERSION -e NUMPY_VERSION -v `pwd`:/io ${{ matrix.config.docker-image }} /io/.github/scripts/build-linux.sh | |
env: | |
PYTHON_ARCH: ${{ matrix.config.python-arch }} | |
PYTHON_VERSION: ${{ matrix.config.python-version }} | |
NUMPY_VERSION: ${{ matrix.config.numpy-version }} | |
- name: Build wheels (macOS) | |
if: matrix.config.os-name == 'mac' | |
run: .github/scripts/build-macos.sh | |
env: | |
MACOS_MIN_VERSION: ${{ matrix.config.macos-min-version }} | |
PYTHON_ARCH: ${{ matrix.config.python-arch }} | |
PYTHON_VERSION: ${{ matrix.config.python-version }} | |
NUMPY_VERSION: ${{ matrix.config.numpy-version }} | |
- name: Setup Python (Windows) | |
if: matrix.config.os-name == 'windows' | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.config.python-version }} | |
- name: Remove pre-installed vcpkg | |
if: matrix.config.os-name == 'windows' | |
run: | | |
rm -rf "$VCPKG_INSTALLATION_ROOT" | |
echo "VCPKG_INSTALLATION_ROOT=" >> $GITHUB_ENV | |
echo "VCPKG_ROOT=" >> $GITHUB_ENV | |
shell: bash | |
- name: Build wheels (Windows) | |
if: matrix.config.os-name == 'windows' | |
run: .github/scripts/build-windows.ps1 | |
shell: pwsh | |
env: | |
PYTHON_VERSION: ${{ matrix.config.python-version }} | |
PYTHON_ARCH: ${{ matrix.config.python-arch }} | |
NUMPY_VERSION: ${{ matrix.config.numpy-version }} | |
- name: Store wheels as artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheel-${{ matrix.config.os-name }}-${{ matrix.config.python-arch }}-${{ matrix.config.python-version }} | |
path: dist | |
docs: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Download wheels from artifact storage | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: wheel-* | |
merge-multiple: true | |
path: dist | |
- name: Install lensfunpy from wheel | |
run: | | |
pip install dist/lensfunpy*cp310*manylinux*x86_64*.whl | |
pip install -r dev-requirements.txt | |
- name: Build docs | |
run: sphinx-build -b html docs dist-docs | |
- name: Store docs HTML as artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: dist-docs | |
publish-wheels: | |
runs-on: ubuntu-latest | |
needs: [build, docs] | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- name: Download wheels from artifact storage | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: wheel-* | |
merge-multiple: true | |
path: dist | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
- name: Upload wheels to PyPI | |
run: | | |
pip install twine | |
twine upload -u __token__ -p ${{ secrets.PYPI_TOKEN }} --skip-existing dist/* | |
publish-docs: | |
runs-on: ubuntu-latest | |
needs: [publish-wheels] | |
permissions: | |
pages: write # to deploy to Pages | |
id-token: write # to verify the deployment originates from an appropriate source | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |