test: add excluded-in-CI live tests #315
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: 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@v3 | |
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 discover --start "./tests/" --pattern "test_offline_*.py" --verbose | |
- name: "Upload artifact test" | |
uses: actions/upload-artifact@v3 | |
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@v3 | |
with: | |
submodules: true | |
- name: "Install Python" | |
uses: actions/setup-python@v4 | |
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 discover --start "./tests/" --pattern "test_offline_*.py" --verbose | |
- name: "Upload artifact test" | |
uses: actions/upload-artifact@v3 | |
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@v3 | |
with: | |
submodules: true | |
- uses: actions/setup-python@v4 | |
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 discover --start "./tests/" --pattern "test_offline_*.py" --verbose | |
- name: "Upload artifact test" | |
uses: actions/upload-artifact@v3 | |
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@v3 | |
with: | |
submodules: true | |
- name: "Install Python" | |
uses: actions/setup-python@v4 | |
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@v3 | |
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 discover --start "./tests/" --pattern "test_offline_*.py" --verbose |