fix: It seems we need to explicitly include pybind11 directories #446
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: Build, Test, and deploy | |
on: [push] | |
jobs: | |
prepare-arm-performance-libraries: | |
runs-on: ${{ matrix.os }} | |
name: Download and prepare ARM Performance Libraries | |
strategy: | |
matrix: | |
armpl: | |
- "23.10" | |
os: | |
- macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout repository | |
- name: Restore cached ARM sources and libraries | |
id: cache-armpl | |
uses: actions/cache@v3 | |
with: | |
path: sources/arm-performance-libraries/${{ matrix.armpl }}/${{ runner.os }} | |
key: armpl-${{ matrix.armpl }}-${{ matrix.os }}-${{ hashFiles('bin/fetch-ArmPL.sh') }} | |
- name: Download ARM Performance Libraries and extract relevant headers and libraries | |
if: steps.cache-armpl.outputs.cache-hit != 'true' | |
run: | | |
./bin/fetch-ArmPL.sh ${{ matrix.armpl }} | |
- name: Store headers and libraries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: armpl-${{ matrix.armpl }}-${{ matrix.os }} | |
path: sources/arm-performance-libraries/* | |
if-no-files-found: error | |
build: | |
needs: | |
- prepare-arm-performance-libraries | |
runs-on: ${{ matrix.os }} | |
name: Build & Test | |
strategy: | |
matrix: | |
os: | |
- ubuntu-20.04 | |
# Intel based | |
- macos-11 | |
# ARM based | |
- macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout repository | |
with: | |
fetch-depth: 0 | |
filter: tree:0 | |
- name: Download ARM Performance Libraries | |
uses: actions/download-artifact@v4 | |
if: ${{ matrix.os == 'macos-14' }} | |
with: | |
pattern: armpl-* | |
path: sources/arm-performance-libraries | |
merge-multiple: true | |
- name: Build wheels | |
uses: pypa/[email protected] | |
with: | |
output-dir: 'dist' | |
- name: Store wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-${{ matrix.os }} | |
path: dist/*.whl | |
if-no-files-found: error | |
source-distribution: | |
runs-on: ubuntu-20.04 | |
name: Create source distribution (sdist) | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout repository | |
with: | |
fetch-depth: 0 | |
filter: tree:0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.7" # Minimum supported version | |
- name: Create source distribution | |
run: | | |
make build-sdist | |
- name: Store source distribution | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdist | |
path: dist/*.tar.gz | |
if-no-files-found: error | |
check-created-artifacts: | |
runs-on: ubuntu-20.04 | |
name: Check that all the created artifacts have a consistent version | |
needs: | |
- build | |
- source-distribution | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout repository | |
with: | |
fetch-depth: 0 | |
filter: tree:0 | |
- name: Download compiled wheels | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: wheels-* | |
path: . | |
merge-multiple: true | |
- name: Download source distribution | |
uses: actions/download-artifact@v4 | |
with: | |
name: sdist | |
- name: Gather wheels and source distribution | |
run: | | |
mkdir -p dist/ | |
mv *.whl dist/ | |
mv *.tar.gz dist/ | |
- name: Ensure artifacts have consistent version | |
run: ./bin/ensure-consistent-version.sh | |
- name: Package all artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: distribution | |
path: dist/ | |
if-no-files-found: error | |
publish: | |
runs-on: ubuntu-20.04 | |
name: Publish wheels, and source to PyPi | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
needs: | |
- check-created-artifacts | |
# Specifying a GitHub environment is optional, but strongly encouraged | |
environment: release | |
permissions: | |
# IMPORTANT: this permission is mandatory for trusted publishing | |
id-token: write | |
steps: | |
- name: Download distribution | |
uses: actions/download-artifact@v4 | |
with: | |
name: distribution | |
path: dist/ | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 |