chore: Disable SSH debug #441
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 | |
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 | |
- install-intel-oneapi | |
runs-on: ${{ matrix.os }} | |
name: Build & Test | |
strategy: | |
matrix: | |
os: | |
# - ubuntu-20.04 | |
- windows-2019 | |
# # Intel based | |
# - macos-11 | |
# # ARM based | |
# - macos-14 | |
# exclude: | |
# # Python 3.7-3.9 are not available on ARM64 | |
# - os: macos-14 | |
# python: 3.7 | |
# - os: macos-14 | |
# python: 3.8 | |
# - os: macos-14 | |
# python: 3.9 | |
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: Setup tmate session | |
if: ${{ false }} | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
limit-access-to-actor: true | |
# https://cibuildwheel.pypa.io/en/stable/setup/#github-actions | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
# C:\Program Files (x86)\Microsoft Visual Studio/2019/Enterprise/SDK/ScopeCppSDK/vc15/SDK/include/ucrt/io.h | |
# for /F "delims=" %A IN ('find "C:\Program Files (x86)\Intel\oneAPI\mkl" -name MKLConfig.cmake') | |
# do dirname "%A" | |
# According to https://cibuildwheel.pypa.io/en/1.x/cpp_standards/#windows-and-python-27 | |
# using vcvarsall.bat will not work as expected, because it sets some environment variables | |
# that cannot be picked up by the parent process | |
# Another option, is to "manually" install cibuildwheel (at least for Windows) | |
CIBW_ENVIRONMENT_WINDOWS: > | |
MKL_DIR="C:\\Program Files (x86)\\Intel\\oneAPI\\mkl\\2025.0\\lib\\cmake\\mkl" | |
CIBW_ARCHS_WINDOWS: AMD64 | |
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair --include-imports --wheel-dir {dest_dir} {wheel}" | |
with: | |
output-dir: 'dist' | |
- name: Test | |
run: make tests | |
- name: Move results from auditwheel | |
# The reason for this, is because setuptools_scm and auditwheel | |
# causes an incompatibility between the updated wheels, which causes the installation during tests to fail | |
if: ${{ runner.os == 'Linux' }} | |
run: | | |
mv wheelhouse/*.whl 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 |