Skip to content

Build

Build #26

Workflow file for this run

name: Build
on:
push:
pull_request:
release:
types: [created]
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
steps:
- uses: actions/checkout@v4
# Used to host cibuildwheel
- uses: actions/setup-python@v5
# Install gfortran on each OS
- name: Setup Fortran Compiler
uses: fortran-lang/setup-fortran@v1
id: setup-fortran
with:
compiler: gcc
version: 13
# Install fpm for Windows
- name: Install fpm
if: runner.os == 'Windows'
uses: fortran-lang/setup-fpm@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# CiBuildWheel
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.19.2
- name: Build wheels
run: python -m cibuildwheel python/ --output-dir wheelhouse
# to supply options, put them in 'env', like:
env:
MACOSX_DEPLOYMENT_TARGET: "13.0"
CIBW_BEFORE_TEST: pip install pytest
CIBW_TEST_COMMAND: pytest {project}/python/tests
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
upload_release_assets:
if: github.event_name == 'release'
name: Upload release assets
runs-on: ubuntu-latest
needs: build_wheels
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
steps:
- uses: actions/download-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ needs.build_wheels.outputs.artifact_name }}
path: wheelhouse
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v1
with:
files: wheelhouse/*.whl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}