Skip to content

try setting up a build machine with ninja #21

try setting up a build machine with ninja

try setting up a build machine with ninja #21

Workflow file for this run

name: Build wheels
on: [push]
jobs:
setup_env:
name: Setup build environment
description: "Install ninja and a fortran compiler"
# It's assumed that `actions/setup-python` is run before this one.
runs:
using: "composite"
steps:
- uses: awvwgk/setup-fortran@v1
# id: setup-fortran
# with:
# compiler: gcc
# version: 12
- run: pip install --upgrade pip
shell: bash
- if: runner.os == 'Linux'
run: sudo apt-get install -y ninja-build
shell: bash
- if: runner.os == 'macOS'
run: brew install ninja
shell: bash
- if: runner.os == 'Windows'
run: choco install ninja
shell: bash
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: setup_env
- name: Build wheels
uses: pypa/cibuildwheel@v2.16.2
env:
CIBW_BEFORE_BUILD_LINUX: "pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple numpy meson-python ninja setuptools build"
CIBW_BEFORE_BUILD_WINDOWS: "pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple numpy meson-python ninja setuptools build"
CIBW_BEFORE_BUILD_MACOS: "pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple numpy meson-python ninja setuptools build"
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_COMMAND: pytest stripy
# ...
# with:
# package-dir: .
# output-dir: wheelhouse
# config-file: "{package}/pyproject.toml"
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
run: pipx run build --sdist
- uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
# upload_pypi:
# needs: [build_wheels, build_sdist]
# runs-on: ubuntu-latest
# environment: pypi
# permissions:
# id-token: write
# if: github.event_name == 'release' && github.event.action == 'published'
# # or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this)
# # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
# steps:
# - uses: actions/download-artifact@v3
# with:
# # unpacks default artifact into dist/
# # if `name: artifact` is omitted, the action will create extra parent dir
# name: artifact
# path: dist
# - uses: pypa/gh-action-pypi-publish@release/v1
# with:
# # To test: repository-url: https://test.pypi.org/legacy/