Wheels #16
This file contains hidden or 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: Wheels | |
on: | |
push: | |
tags: | |
- "v*" | |
workflow_dispatch: | |
env: | |
TALIB_C_VER: 0.6.4 | |
TALIB_PY_VER: ${{ github.ref_name }} | |
PIP_NO_VERIFY: 0 | |
PIP_VERBOSE: 1 | |
CIBW_BEFORE_BUILD: pip install -U setuptools Cython wheel meson-python ninja && pip install -U numpy | |
CIBW_TEST_REQUIRES: pytest pandas maturin polars | |
CIBW_SKIP: "pp*" | |
jobs: | |
build_manylinux_x86_64: | |
name: Build ManyLinux x86_64 wheels | |
strategy: | |
matrix: | |
os: ["ubuntu-22.04"] | |
runs-on: ${{ matrix.os }} | |
env: | |
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28 | |
CIBW_MANYLINUX_I686_IMAGE: manylinux_2_28 | |
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28 | |
CIBW_SKIP: "pp* cp*-musllinux*" | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest -k "not RSI and not threading" {project}/tests | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install GCC and CMake | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y gcc g++ cmake ninja-build | |
- name: Make script executable | |
run: chmod +x ./tools/build_talib_linux.sh | |
- name: Build TA-Lib C Library | |
run: ./tools/build_talib_linux.sh | |
shell: bash | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_ARCHS_LINUX: x86_64 | |
CIBW_BUILD_FRONTEND: build | |
CIBW_ENVIRONMENT_LINUX : > | |
TA_LIBRARY_PATH="ta-lib-install/lib" | |
TA_INCLUDE_PATH="ta-lib-install/include" | |
PIP_NO_BUILD_ISOLATION=false | |
CIBW_REPAIR_WHEEL_COMMAND_LINUX: | | |
export LD_LIBRARY_PATH="/project/ta-lib-install/lib:$LD_LIBRARY_PATH" | |
auditwheel repair -w {dest_dir} {wheel} | |
- name: Set wheel name | |
run: | | |
echo "WHEEL_NAME=ta_lib-${{env.TALIB_PY_VER}}-manylinux_x86_64" >> $GITHUB_ENV | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_manylinux_arm64: | |
name: Build ManyLinux arm64 wheels | |
strategy: | |
matrix: | |
os: ["ubuntu-22.04-arm"] | |
runs-on: ${{ matrix.os }} | |
env: | |
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28 | |
CIBW_MANYLINUX_I686_IMAGE: manylinux_2_28 | |
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28 | |
CIBW_SKIP: "pp* cp*-musllinux*" | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest -k "not RSI and not threading" {project}/tests | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install GCC and CMake | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y gcc g++ cmake ninja-build | |
- name: Make script executable | |
run: chmod +x ./tools/build_talib_linux.sh | |
- name: Build TA-Lib C Library | |
run: ./tools/build_talib_linux.sh | |
shell: bash | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_ARCHS_LINUX: aarch64 | |
CIBW_BUILD_FRONTEND: build | |
CIBW_ENVIRONMENT_LINUX : > | |
TA_LIBRARY_PATH="ta-lib-install/lib" | |
TA_INCLUDE_PATH="ta-lib-install/include" | |
PIP_NO_BUILD_ISOLATION=false | |
CIBW_REPAIR_WHEEL_COMMAND_LINUX: | | |
export LD_LIBRARY_PATH="/project/ta-lib-install/lib:$LD_LIBRARY_PATH" | |
auditwheel repair -w {dest_dir} {wheel} | |
- name: Set wheel name | |
run: | | |
echo "WHEEL_NAME=ta_lib-${{env.TALIB_PY_VER}}-manylinux_aarch64" >> $GITHUB_ENV | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_musllinux_x86_64: | |
name: Build MuslLinux x86_64 wheels | |
strategy: | |
matrix: | |
os: ["ubuntu-22.04"] | |
runs-on: ${{ matrix.os }} | |
env: | |
CIBW_MUSLLINUX_X86_64_IMAGE: musllinux_1_2 | |
CIBW_MUSLLINUX_I686_IMAGE: musllinux_1_2 | |
CIBW_MUSLLINUX_AARCH64_IMAGE: musllinux_1_2 | |
CIBW_SKIP: "pp* cp*-manylinux*" | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest -k "not RSI and not threading" {project}/tests | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup latest Alpine Linux | |
uses: jirutka/setup-alpine@v1 | |
with: | |
branch: v3.15 | |
packages: > | |
build-base | |
bash | |
curl | |
unzip | |
gcc | |
g++ | |
cmake | |
ninja | |
rust | |
volumes: ${{ github.workspace }}:/project | |
- name: Make script executable | |
run: chmod +x ./tools/build_talib_linux.sh | |
- name: Build TA-Lib C Library | |
run: ./tools/build_talib_linux.sh | |
shell: alpine.sh {0} | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_ARCHS_LINUX: x86_64 | |
CIBW_BUILD_FRONTEND: build | |
CIBW_ENVIRONMENT_LINUX : > | |
TA_LIBRARY_PATH="ta-lib-install/lib" | |
TA_INCLUDE_PATH="ta-lib-install/include" | |
PIP_NO_BUILD_ISOLATION=false | |
CIBW_REPAIR_WHEEL_COMMAND_LINUX: | | |
export LD_LIBRARY_PATH="/project/ta-lib-install/lib:$LD_LIBRARY_PATH" | |
auditwheel repair -w {dest_dir} {wheel} | |
- name: Set wheel name | |
run: | | |
echo "WHEEL_NAME=ta_lib-${{env.TALIB_PY_VER}}-musllinux_x86_64" >> $GITHUB_ENV | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_musllinux_aarch64: | |
name: Build MuslLinux arm64 wheels | |
strategy: | |
matrix: | |
os: ["ubuntu-22.04"] | |
runs-on: ${{ matrix.os }} | |
env: | |
CIBW_MUSLLINUX_X86_64_IMAGE: musllinux_1_2 | |
CIBW_MUSLLINUX_I686_IMAGE: musllinux_1_2 | |
CIBW_MUSLLINUX_AARCH64_IMAGE: musllinux_1_2 | |
CIBW_SKIP: "pp* cp*-manylinux*" | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest -k "not RSI and not threading" {project}/tests | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup latest Alpine Linux | |
uses: jirutka/setup-alpine@v1 | |
with: | |
branch: v3.15 | |
packages: > | |
build-base | |
bash | |
curl | |
unzip | |
gcc | |
g++ | |
cmake | |
ninja | |
rust | |
arch: aarch64 | |
volumes: ${{ github.workspace }}:/project | |
- name: Make script executable | |
run: chmod +x ./tools/build_talib_linux.sh | |
- name: Build TA-Lib C Library | |
run: ./tools/build_talib_linux.sh | |
shell: alpine.sh {0} | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_ARCHS_LINUX: aarch64 | |
CIBW_BUILD_FRONTEND: build | |
CIBW_ENVIRONMENT_LINUX : > | |
TA_LIBRARY_PATH="ta-lib-install/lib" | |
TA_INCLUDE_PATH="ta-lib-install/include" | |
PIP_NO_BUILD_ISOLATION=false | |
CIBW_REPAIR_WHEEL_COMMAND_LINUX: | | |
export LD_LIBRARY_PATH="/project/ta-lib-install/lib:$LD_LIBRARY_PATH" | |
auditwheel repair -w {dest_dir} {wheel} | |
- name: Set wheel name | |
run: | | |
echo "WHEEL_NAME=ta_lib-${{env.TALIB_PY_VER}}-musllinux_aarch64" >> $GITHUB_ENV | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_windows_amd64: | |
name: Build Windows amd64 wheels | |
strategy: | |
matrix: | |
os: ["windows-2022"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Set up MSVC for x64 | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: amd64 | |
- name: Build TA-Lib C Library | |
run: tools/build_talib_windows.cmd | |
shell: cmd | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest --rootdir=C: -k "not RSI and not threading" {project}/tests | |
MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT: 1 | |
CIBW_ARCHS_WINDOWS: AMD64 | |
CIBW_ENVIRONMENT_WINDOWS: > | |
TA_LIBRARY_PATH="ta-lib-$TALIB_C_VER\\_build;$LIB" | |
TA_INCLUDE_PATH="ta-lib-$TALIB_C_VER\\include;$INCLUDE" | |
PIP_NO_BUILD_ISOLATION=false | |
- name: Set wheel name | |
run: | | |
echo ("WHEEL_NAME=" + "ta_lib-" + $env:TALIB_PY_VER + "-win_amd64") >> $env:GITHUB_ENV | |
- name: Upload wheel | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_windows_x86: | |
name: Build Windows x86 wheels | |
strategy: | |
matrix: | |
os: ["windows-2022"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Set up MSVC for x86 | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: amd64_x86 | |
- name: Build TA-Lib C library | |
run: tools/build_talib_windows.cmd | |
shell: cmd | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest --rootdir=C: -k "not RSI and not threading" {project}/tests | |
MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT: 1 | |
CIBW_ARCHS_WINDOWS: x86 | |
CIBW_ENVIRONMENT_WINDOWS: > | |
TA_LIBRARY_PATH="ta-lib-$TALIB_C_VER\\_build;$LIB" | |
TA_INCLUDE_PATH="ta-lib-$TALIB_C_VER\\include;$INCLUDE" | |
PIP_NO_BUILD_ISOLATION=false | |
- name: Set wheel name | |
run: | | |
echo ("WHEEL_NAME=" + "ta_lib-" + $env:TALIB_PY_VER + "-win32") >> $env:GITHUB_ENV | |
- name: Upload wheel | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_windows_arm64: | |
name: Build Windows arm64 wheels | |
strategy: | |
matrix: | |
os: ["windows-11-arm"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Set up MSVC for arm | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: arm64 | |
- name: Build TA-Lib C Library | |
run: tools/build_talib_windows.cmd | |
shell: cmd | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest --rootdir=C: -k "not RSI and not threading" {project}/tests | |
MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT: 1 | |
CIBW_ARCHS_WINDOWS: ARM64 | |
CIBW_ENVIRONMENT_WINDOWS: > | |
TA_LIBRARY_PATH="ta-lib-$TALIB_C_VER\\_build;$LIB" | |
TA_INCLUDE_PATH="ta-lib-$TALIB_C_VER\\include;$INCLUDE" | |
PIP_NO_BUILD_ISOLATION=false | |
- name: Set wheel name | |
run: | | |
echo ("WHEEL_NAME=" + "ta_lib-" + $env:TALIB_PY_VER + "-win_arm64") >> $env:GITHUB_ENV | |
- name: Upload wheel | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_macos_x86_64: | |
name: Build MacOS x86_64 wheels | |
strategy: | |
matrix: | |
os: [macos-13] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Make script executable | |
run: chmod +x ./tools/build_talib_macos.sh | |
- name: Build TA-Lib C Library | |
run: ./tools/build_talib_macos.sh | |
shell: bash | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest -k "not RSI and not threading" {project}/tests | |
CIBW_ARCHS_MACOS: x86_64 | |
CIBW_ENVIRONMENT_MACOS : > | |
TA_LIBRARY_PATH="ta-lib-install/lib" | |
TA_INCLUDE_PATH="ta-lib-install/include" | |
PIP_NO_BUILD_ISOLATION=false | |
CIBW_REPAIR_WHEEL_COMMAND_MACOS: | | |
export MACOSX_DEPLOYMENT_TARGET=13.7 | |
export DYLD_LIBRARY_PATH="/Users/runner/work/${{ github.event.repository.name }}/${{ github.event.repository.name }}/ta-lib-install/lib:$DYLD_LIBRARY_PATH" | |
delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} | |
- name: Set wheel name | |
run: | | |
echo "WHEEL_NAME=ta_lib-${{env.TALIB_PY_VER}}-macos_x86_64" >> $GITHUB_ENV | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} | |
build_macos_arm64: | |
name: Build MacOS arm64 wheels | |
strategy: | |
matrix: | |
os: [macos-14] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Make script executable | |
run: chmod +x ./tools/build_talib_macos.sh | |
- name: Build TA-Lib C Library | |
run: ./tools/build_talib_macos.sh | |
shell: bash | |
- name: Build wheels | |
uses: pypa/cibuildwheel@v2.23.3 | |
env: | |
CIBW_TEST_COMMAND: > | |
cd .. && | |
pytest -k "not RSI and not threading" {project}/tests | |
CIBW_ARCHS_MACOS: arm64 | |
CIBW_ENVIRONMENT_MACOS : > | |
TA_LIBRARY_PATH="ta-lib-install/lib" | |
TA_INCLUDE_PATH="ta-lib-install/include" | |
PIP_NO_BUILD_ISOLATION=false | |
CIBW_REPAIR_WHEEL_COMMAND_MACOS: | | |
export MACOSX_DEPLOYMENT_TARGET=14.0 | |
export DYLD_LIBRARY_PATH="/Users/runner/work/${{ github.event.repository.name }}/${{ github.event.repository.name }}/ta-lib-install/lib:$DYLD_LIBRARY_PATH" | |
delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} | |
- name: Set wheel name | |
run: | | |
echo "WHEEL_NAME=ta_lib-${{env.TALIB_PY_VER}}-macos_arm64" >> $GITHUB_ENV | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ./wheelhouse/*.whl | |
name: ${{ env.WHEEL_NAME }} |