Skip to content

testing ccache on linux #122

testing ccache on linux

testing ccache on linux #122

Workflow file for this run

name: Build Wheels
on:
push:
branches:
- main
tags:
- "quaddtype-v*"
paths:
- "quaddtype/**"
- ".github/workflows/**"
pull_request:
paths:
- "quaddtype/**"
- ".github/workflows/**"
workflow_dispatch:
jobs:
build_wheels_linux:
name: Build wheels on Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: ccaches
uses: hendrikmuhs/[email protected]
with:
create-symlink: true
key: ${{ github.job }}-ubuntu-latest
verbose: 2
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ">=3.11.0"
- name: Install cibuildwheel
run: pip install cibuildwheel==3.1.4
- name: Build wheels
env:
CIBW_BUILD: "cp310-manylinux_x86_64 cp311-manylinux_x86_64 cp312-manylinux_x86_64 cp313-manylinux_x86_64 cp313t-manylinux_x86_64 cp314-manylinux_x86_64 cp314t-manylinux_x86_64"
CIBW_ENABLE: cpython-prerelease cpython-freethreading
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_BUILD_VERBOSITY: "3"
CIBW_BEFORE_ALL: |
yum update -y
yum install -y cmake gcc gcc-c++ make git pkgconfig
CIBW_ENVIRONMENT: >
LDFLAGS="-fopenmp"
CIBW_REPAIR_WHEEL_COMMAND: |
auditwheel repair -w {dest_dir} --plat manylinux_2_28_x86_64 {wheel}
CIBW_TEST_COMMAND: |
pip install {package}[test]
if python -c "import sys; exit(0 if hasattr(sys, '_is_gil_enabled') and not sys._is_gil_enabled() else 1)"; then
pytest --parallel-threads=10 --iterations=10 {project}/tests
else
pytest -s {project}/tests
fi
CIBW_TEST_EXTRAS: "test"
run: |
python -m cibuildwheel --output-dir wheelhouse
working-directory: ./quaddtype
- uses: actions/upload-artifact@v4
with:
path: ./quaddtype/wheelhouse/*.whl
name: wheels-linux
# build_wheels_macos:
# name: Build wheels on ${{ matrix.os }}
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# os: [macos-13, macos-14]
# steps:
# - uses: actions/checkout@v3
# - name: Set up Python
# uses: actions/setup-python@v4
# with:
# python-version: ">=3.11.0"
# - name: Install dependencies
# run: |
# packages="cmake libomp git"
# echo "Remove preinstalled dependencies"
# for pkg in $packages; do
# brew uninstall --ignore-dependencies $pkg 2>/dev/null || true
# done
# brew cleanup
# brew install $packages
# - name: Installing Python dependencies
# run: |
# pip install -U pip
# pip install cibuildwheel==3.1.4
# pip install pytest-run-parallel
# - name: Build wheels
# env:
# CIBW_BUILD: "cp310-* cp311-* cp312-* cp313-* cp314-* cp313t-* cp314t-*"
# CIBW_ENABLE: cpython-prerelease cpython-freethreading
# CIBW_ARCHS_MACOS: ${{ matrix.os == 'macos-13' && 'x86_64' || 'arm64' }}
# CIBW_BUILD_VERBOSITY: "3"
# CIBW_ENVIRONMENT: >
# MACOSX_DEPLOYMENT_TARGET="${{ matrix.os == 'macos-13' && '13.0' || '14.0' }}"
# CIBW_REPAIR_WHEEL_COMMAND: >
# delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}
# CIBW_TEST_COMMAND: |
# pip install {package}[test]
# if python -c "import sys; exit(0 if hasattr(sys, '_is_gil_enabled') and not sys._is_gil_enabled() else 1)"; then
# pytest --parallel-threads=10 --iterations=10 {project}/tests
# else
# pytest -s {project}/tests
# fi
# CIBW_TEST_EXTRAS: "test"
# run: |
# python -m cibuildwheel --output-dir wheelhouse
# working-directory: ./quaddtype
# - uses: actions/upload-artifact@v4
# with:
# path: ./quaddtype/wheelhouse/*.whl
# name: wheels-${{ matrix.os }}
# # disabling QBLAS optimization for windows due to incompatibility with MSVC
# build_wheels_windows:
# name: Build wheels on Windows
# runs-on: windows-latest
# strategy:
# matrix:
# architecture: [x64]
# steps:
# - uses: actions/checkout@v3
# - name: Setup MSVC
# uses: ilammy/msvc-dev-cmd@v1
# with:
# arch: ${{ matrix.architecture }}
# - name: Set up Python
# uses: actions/setup-python@v4
# with:
# python-version: ">=3.11.0"
# architecture: ${{ matrix.architecture }}
# - name: Install CMake
# uses: lukka/get-cmake@latest
# - name: Install build dependencies
# shell: bash -l {0}
# run: |
# pip install -U pip
# pip install cibuildwheel==3.1.4 ninja meson meson-python numpy delvewheel pytest
# - name: Build wheels
# env:
# CIBW_BUILD: "cp310-* cp311-* cp312-* cp313-* cp314-* cp313t-* cp314t-*"
# CIBW_ENABLE: cpython-prerelease cpython-freethreading
# CIBW_SKIP: "pp* cp36-* cp37-* cp38-* cp39-*"
# CIBW_ARCHS_WINDOWS: ${{ matrix.architecture == 'x86' && 'x86' || 'AMD64' }}
# CIBW_BUILD_VERBOSITY: "3"
# DISTUTILS_USE_SDK: "1"
# MSSdk: "1"
# CIBW_BEFORE_BUILD: |
# pip install meson meson-python ninja numpy
# CIBW_ENVIRONMENT: >
# CFLAGS="/DDISABLE_QUADBLAS $CFLAGS"
# CXXFLAGS="/DDISABLE_QUADBLAS $CXXFLAGS"
# CIBW_REPAIR_WHEEL_COMMAND: 'delvewheel repair -w {dest_dir} {wheel} --add-path C:\sleef\bin'
# CIBW_TEST_COMMAND: |
# pip install {package}[test]
# if python -c "import sys; exit(0 if hasattr(sys, '_is_gil_enabled') and not sys._is_gil_enabled() else 1)"; then
# pytest --parallel-threads=10 --iterations=10 {project}/tests
# else
# pytest -s {project}/tests
# fi
# CIBW_TEST_EXTRAS: test
# CIBW_TEST_FAIL_FAST: 1
# shell: pwsh
# run: |
# python -m cibuildwheel --output-dir wheelhouse
# if (-not (Test-Path wheelhouse/*.whl)) { throw "Wheel was not created" }
# working-directory: ./quaddtype
# - uses: actions/upload-artifact@v4
# with:
# path: ./quaddtype/wheelhouse/*.whl
# name: wheels-windows-${{ matrix.architecture }}
# build_sdist:
# name: Build SDist
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - name: Set up Python
# uses: actions/setup-python@v4
# with:
# python-version: ">=3.11.0"
# - name: Install system dependencies
# run: |
# sudo apt-get update -y
# sudo apt-get install -y cmake gcc g++ make git pkg-config
# - name: Install build dependencies
# run: |
# python -m pip install --upgrade pip
# python -m pip install build pytest
# - name: Build SDist & test sdist
# env:
# LDFLAGS: "-fopenmp"
# run: |
# python -m build --sdist --outdir dist/
# pip install dist/*.tar.gz -v
# pytest -s tests
# working-directory: ./quaddtype
# - name: Upload SDist artifact
# uses: actions/upload-artifact@v4
# with:
# name: sdist
# path: ./quaddtype/dist/*.tar.gz
# publish_to_pypi:
# name: Publish to PyPI
# needs:
# [
# build_wheels_linux,
# build_wheels_macos,
# build_wheels_windows,
# build_sdist,
# ]
# runs-on: ubuntu-latest
# if: startsWith(github.ref, 'refs/tags/quaddtype-v')
# environment:
# name: quadtype_release
# url: https://pypi.org/p/numpy-quaddtype
# permissions:
# id-token: write # IMPORTANT: mandatory for trusted publishing
# steps:
# - name: Download all workflow run artifacts
# uses: actions/download-artifact@v4
# with:
# pattern: "*"
# path: dist
# merge-multiple: true
# - name: Publish to PyPI
# uses: pypa/gh-action-pypi-publish@release/v1