190 lines
5.6 KiB
YAML
190 lines
5.6 KiB
YAML
name: Test Python
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- "bdk-ffi/**"
|
|
- "bdk-python/**"
|
|
pull_request:
|
|
paths:
|
|
- "bdk-ffi/**"
|
|
- "bdk-python/**"
|
|
|
|
# We use manylinux2014 because older CentOS versions used by 2010 and 1 have a very old glibc version, which
|
|
# makes it very hard to use GitHub's javascript actions (checkout, upload-artifact, etc).
|
|
# They mount their own nodejs interpreter inside your container, but since that's not statically linked it
|
|
# tries to load glibc and fails because it requires a more recent version.
|
|
|
|
jobs:
|
|
build-manylinux2014-x86_64-wheels:
|
|
name: "Build and test Manylinux 2014 x86_64 wheels"
|
|
runs-on: ubuntu-20.04
|
|
defaults:
|
|
run:
|
|
working-directory: bdk-python
|
|
container:
|
|
image: quay.io/pypa/manylinux2014_x86_64
|
|
env:
|
|
PLAT: manylinux2014_x86_64
|
|
PYBIN: "/opt/python/${{ matrix.python }}/bin"
|
|
strategy:
|
|
matrix:
|
|
python:
|
|
- cp38-cp38
|
|
- cp39-cp39
|
|
- cp310-cp310
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
|
|
- name: "Generate bdk.py and binaries"
|
|
run: bash ./scripts/generate-linux.sh
|
|
|
|
- name: "Build wheel"
|
|
# Specifying the plat-name argument is necessary to build a wheel with the correct name,
|
|
# see issue #350 for more information
|
|
run: ${PYBIN}/python setup.py bdist_wheel --plat-name manylinux_2_17_x86_64 --verbose
|
|
|
|
- name: "Install wheel"
|
|
run: ${PYBIN}/pip install ./dist/*.whl
|
|
|
|
- name: "Run tests"
|
|
run: ${PYBIN}/python -m unittest tests/test_bdk.py --verbose
|
|
|
|
- name: "Upload artifact test"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: bdkpython-manylinux2014-x86_64-${{ matrix.python }}
|
|
path: /home/runner/work/bdk-ffi/bdk-ffi/bdk-python/dist/*.whl
|
|
|
|
build-macos-arm64-wheels:
|
|
name: "Build and test macOS arm64 wheels"
|
|
runs-on: macos-13
|
|
defaults:
|
|
run:
|
|
working-directory: bdk-python
|
|
strategy:
|
|
matrix:
|
|
python:
|
|
- "3.8"
|
|
- "3.9"
|
|
- "3.10"
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
|
|
- name: "Install Python"
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: "Generate bdk.py and binaries"
|
|
run: bash ./scripts/generate-macos-arm64.sh
|
|
|
|
- name: "Build wheel"
|
|
# Specifying the plat-name argument is necessary to build a wheel with the correct name,
|
|
# see issue #350 for more information
|
|
run: python3 setup.py bdist_wheel --plat-name macosx_11_0_arm64 --verbose
|
|
|
|
# You can't install the arm64 wheel on the CI, so we skip these steps and simply test that the wheel builds
|
|
# - name: "Install wheel and run tests"
|
|
# run: |
|
|
# pip3 install ./dist/*.whl
|
|
# python3 -m unittest tests/test_bdk.py --verbose
|
|
|
|
- name: "Upload artifact test"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: bdkpython-macos-arm64-${{ matrix.python }}
|
|
path: /Users/runner/work/bdk-ffi/bdk-ffi/bdk-python/dist/*.whl
|
|
|
|
build-macos-x86_64-wheels:
|
|
name: "Build and test macOS x86_64 wheels"
|
|
runs-on: macos-13
|
|
defaults:
|
|
run:
|
|
working-directory: bdk-python
|
|
strategy:
|
|
matrix:
|
|
python:
|
|
- "3.8"
|
|
- "3.9"
|
|
- "3.10"
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: "Generate bdk.py and binaries"
|
|
run: bash ./scripts/generate-macos-x86_64.sh
|
|
|
|
- name: "Build wheel"
|
|
# Specifying the plat-name argument is necessary to build a wheel with the correct name,
|
|
# see issue #350 for more information
|
|
run: python3 setup.py bdist_wheel --plat-name macosx_11_0_x86_64 --verbose
|
|
|
|
- name: "Install wheel"
|
|
run: pip3 install ./dist/*.whl
|
|
|
|
- name: "Run tests"
|
|
run: python3 -m unittest tests/test_bdk.py --verbose
|
|
|
|
- name: "Upload artifact test"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: bdkpython-macos-x86_64-${{ matrix.python }}
|
|
path: /Users/runner/work/bdk-ffi/bdk-ffi/bdk-python/dist/*.whl
|
|
|
|
build-windows-wheels:
|
|
name: "Build and test Windows wheels"
|
|
runs-on: windows-2022
|
|
defaults:
|
|
run:
|
|
working-directory: bdk-python
|
|
strategy:
|
|
matrix:
|
|
python:
|
|
- "3.8"
|
|
- "3.9"
|
|
- "3.10"
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
|
|
- name: "Install Python"
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: "Generate bdk.py and binaries"
|
|
run: bash ./scripts/generate-windows.sh
|
|
|
|
- name: "Build wheel"
|
|
run: python setup.py bdist_wheel --verbose
|
|
|
|
- name: "Upload artifact test"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: bdkpython-windows-${{ matrix.python }}
|
|
path: D:\a\bdk-ffi\bdk-ffi\bdk-python\dist\*.whl
|
|
|
|
- name: "Install dependencies"
|
|
run: Get-ChildItem 'D:\a\bdk-ffi\bdk-ffi\bdk-python\dist\*.whl' | ForEach-Object {pip install $_.FullName}
|
|
shell: powershell
|
|
|
|
- name: "Run tests"
|
|
run: python -m unittest tests/test_bdk.py --verbose
|