fix: We may not need to use use_absolute
any more
#455
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: | ||
# lookup-only: true | ||
# 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 | ||
# if: steps.cache-armpl.outputs.cache-hit != 'true' | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: armpl-${{ matrix.armpl }}-${{ matrix.os }} | ||
# path: sources/arm-performance-libraries/* | ||
# if-no-files-found: error | ||
# | ||
# install-intel-oneapi: | ||
# runs-on: windows-2019 | ||
# name: Install Intel oneAPI with MKL | ||
# env: | ||
# WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ae29263e-38b9-4d43-86c3-376d6e0668e7/intel-oneapi-base-toolkit-2025.0.1.47_offline.exe | ||
# WINDOWS_COMPONENTS: intel.oneapi.win.mkl.devel:intel.oneapi.win.tbb.devel:intel.oneapi.win.dpl | ||
# CACHE_NUMBER: 1 | ||
# | ||
# defaults: | ||
# run: | ||
# shell: bash | ||
# steps: | ||
# - uses: actions/checkout@v4 | ||
# | ||
# - name: cache install | ||
# id: cache-install | ||
# uses: actions/cache@v4 | ||
# with: | ||
# lookup-only: true # We don't use oneAPI here, rather it is used in the build step | ||
# path: | | ||
# C:\Program Files (x86)\Intel\oneAPI\ | ||
# key: intel-openapi-install-${{ env.CACHE_NUMBER }}-${{ env.WINDOWS_BASEKIT_URL }}-${{ env.WINDOWS_COMPONENTS }}-compiler-${{ hashFiles('**/bin/cache_exclude_windows.sh') }} | ||
# | ||
# - name: install | ||
# if: steps.cache-install.outputs.cache-hit != 'true' | ||
# timeout-minutes: 10 | ||
# run: bin/install-intel-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_COMPONENTS | ||
# | ||
# - name: exclude unused files from cache | ||
# if: steps.cache-install.outputs.cache-hit != 'true' | ||
# shell: bash | ||
# run: bin/cache_exclude_windows.sh | ||
# | ||
# # Delete the following if you don't want to save install logs | ||
# - name: Saving install logs | ||
# if: steps.cache-install.outputs.cache-hit != 'true' | ||
# uses: actions/upload-artifact@v4 | ||
# with: | ||
# name: InstallLogs_${{ github.job }} | ||
# path: | | ||
# extract.log | ||
# bootstrapper* | ||
# installer* | ||
# retention-days: 7 | ||
build: | ||
needs: | ||
- prepare-arm-performance-libraries | ||
Check failure on line 87 in .github/workflows/ci.yaml GitHub Actions / Build, Test, and deployInvalid workflow file
|
||
- install-intel-oneapi | ||
runs-on: ${{ matrix.os }} | ||
name: Build & Test | ||
strategy: | ||
matrix: | ||
os: | ||
# - ubuntu-20.04 | ||
# - windows-2019 | ||
# # Intel based | ||
- macos-13 | ||
# # 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: Install Intel oneAPI | ||
uses: actions/cache/restore@v4 | ||
if: ${{ startsWith(matrix.os, 'windows-') }} | ||
with: | ||
key: -non-existent | ||
restore-keys: | | ||
intel-openapi-install- | ||
path: | | ||
C:\Program Files (x86)\Intel\oneAPI\ | ||
fail-on-cache-miss: true | ||
- name: Configure build for 64-bit Windows | ||
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 | ||
with: | ||
arch: amd64 | ||
- name: Build wheels | ||
uses: pypa/[email protected] | ||
env: | ||
CIBW_ENVIRONMENT_WINDOWS: > | ||
MKL_DIR="C:\\Program Files (x86)\\Intel\\oneAPI\\mkl\\2025.0\\lib\\cmake\\mkl" | ||
CIBW_ARCHS_WINDOWS: AMD64 | ||
# Intel MKL only support glibc x86 64bit Intel CPUs | ||
# If you need to compile gaussianfft for other architectures, | ||
# a different fftw3 implementation must be used | ||
CIBW_ARCHS_LINUX: "x86_64" | ||
CIBW_SKIP: "*-musllinux_x86_64" | ||
CIBW_ENABLE: "pypy" | ||
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 |