Skip to content

chore: Disable SSH debug #441

chore: Disable SSH debug

chore: Disable SSH debug #441

Workflow file for this run

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