Skip to content

ppf doc

ppf doc #73

Workflow file for this run

name: Wheels
on: [ push, pull_request ]
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
if: ${{ startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[pypi]') }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ macos-11, macos-12, macos-13, flyci-macos-large-latest-m2, macos-14, ubuntu-latest, windows-latest ]
steps:
- uses: awvwgk/setup-fortran@main
if: matrix.os == 'windows-latest'
id: setup-fortran
with:
compiler: gcc
version: 11
- run: ln -s $(which gfortran-11) /usr/local/bin/gfortran
if: matrix.os != 'windows-latest'
- run: gfortran --version
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-python@v5
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.18.1
- name: Build macos-13 wheels
if: matrix.os == 'macos-13' || matrix.os == 'macos-13-xlarge' || matrix.os == 'flyci-macos-large-latest-m2'
env:
MACOSX_DEPLOYMENT_TARGET: 13
CIBW_BUILD: cp311-*
CIBW_SKIP: pp*
CIBW_BUILD_VERBOSITY: 1
run: python -m cibuildwheel --output-dir wheelhouse
- name: Build macos-12 wheels
if: matrix.os == 'macos-12'
env:
MACOSX_DEPLOYMENT_TARGET: 12
CIBW_BUILD: cp311-*
CIBW_SKIP: pp*
CIBW_BUILD_VERBOSITY: 1
run: python -m cibuildwheel --output-dir wheelhouse
- name: Build macos-11 wheels
if: matrix.os == 'macos-11'
env:
# all cp3xx, since old macs seem to only use osx 11+ builds if this is set not "none"
# see consistency with get_tag() in setup.py
MACOSX_DEPLOYMENT_TARGET: 11
CIBW_SKIP: pp*
CIBW_BUILD_VERBOSITY: 1
run: python -m cibuildwheel --output-dir wheelhouse
- name: Build wheels
if: matrix.os == 'macos-14' || matrix.os == 'ubuntu-latest' || matrix.os == 'windows-latest'
env:
MACOSX_DEPLOYMENT_TARGET: 14
CIBW_BUILD: cp311-*
CIBW_SKIP: pp* *-win32 *-manylinux_i686 *musllinux*
CIBW_BUILD_VERBOSITY: 1
run: python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}
path: |
wheelhouse/*.whl
build-sdist-and-upload:
runs-on: ubuntu-latest
needs: [ 'build_wheels' ]
environment: wheels
if: github.repository_owner == 'cmbant'
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: pip
cache-dependency-path: "setup.py"
- name: Install dependencies
run: |
python -m pip install -U pip
python -m pip install -U build twine
- name: Download wheels from build artifacts
uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
path: dist-wheels/
- name: Build package
run: |
python -m build --sdist
twine check --strict dist/*
twine check --strict dist-wheels/*
- name: Publish wheels to PyPI Test
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
packages-dir: dist-wheels/
- name: Publish sdist to PyPI Test
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
- name: Publish wheels to PyPI
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist-wheels/
- name: Publish sdist to PyPI
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: pypa/gh-action-pypi-publish@release/v1
test_wheels:
name: Test wheels on ${{ matrix.os }}
if: contains(github.event.head_commit.message, '[testpypi]')
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ macos-11, macos-12, macos-13, flyci-macos-large-latest-m2, macos-14, ubuntu-latest, windows-latest ]
steps:
- uses: actions/setup-python@v5
- name: install
run: python -m pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ camb
- name: test
run: python -m unittest camb.tests.camb_test