Skip to content

trigger-bdk-python-test #13

trigger-bdk-python-test

trigger-bdk-python-test #13

name: Test on BDK-FFI Latest Commit
on:
workflow_dispatch:
repository_dispatch:
types: [ trigger-bdk-python-test ]
permissions: {}
jobs:
test-bdk-ffi-latest-manylinux_2_28-x86_64-wheels:
name: "Build and run unittest on Manylinux 2.28 x86_64 wheels against the latest commit on bdk-ffi"
runs-on: ubuntu-24.04
container:
image: quay.io/pypa/manylinux_2_28_x86_64
env:
PLAT: manylinux_2_28_x86_64
PYBIN: "/opt/python/${{ matrix.python }}/bin"
strategy:
matrix:
python:
- cp310-cp310
- cp311-cp311
- cp312-cp312
- cp313-cp313
steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
persist-credentials: false
fetch-depth: 0
- name: "Configure Git safe directory"
run: git config --global --add safe.directory /__w/bdk-python/bdk-python
- name: "Update bdk-ffi submodule to latest"
run: |
cd ./bdk-ffi/ \
&& git fetch origin \
&& git checkout master \
&& git pull origin master \
&& echo "Testing commit: $(git log -1 --pretty=format:'%h %s (author: %cn)')"
- name: "Cache"
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
./target
key: ${{ runner.os }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- name: "Setup Rust"
uses: actions-rust-lang/[email protected]
with:
toolchain: 1.85.1
- name: "Generate bdk.py and binaries"
run: bash ./scripts/generate-linux.sh
- name: "Install build"
run: ${PYBIN}/pip install build
- name: "Build wheel"
run: ${PYBIN}/python -m build --wheel --config-setting=--build-option=--plat-name=manylinux_2_28_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
test-bdk-ffi-latest-macos-arm64-wheels:
name: "Build and run unittest on macOS arm64 wheels against the latest commit on bdk-ffi"
runs-on: macos-14
strategy:
matrix:
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
persist-credentials: false
fetch-depth: 0
- name: "Update bdk-ffi submodule to latest"
run: |
cd ./bdk-ffi/ \
&& git fetch origin \
&& git checkout master \
&& git pull origin master \
&& echo "Testing commit: $(git log -1 --pretty=format:'%h %s (author: %cn)')"
- name: "Cache"
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
./target
key: ${{ runner.os }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- 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: "Install build"
run: pip3 install build
- 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 -m build --wheel --config-setting=--build-option=--plat-name=macosx_11_0_arm64 --verbose
- name: "Install wheel"
run: pip3 install ./dist/*.whl
- name: "Run tests"
run: python3 -m unittest discover --start "./tests/" --pattern "test_offline_*.py" --verbose
test-bdk-ffi-latest-macos-x86_64-wheels:
name: "Build and run unittest on macOS x86_64 wheels against the latest commit on bdk-ffi"
runs-on: macos-15-intel
strategy:
matrix:
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
persist-credentials: false
fetch-depth: 0
- name: "Update bdk-ffi submodule to latest"
run: |
cd ./bdk-ffi/ \
&& git fetch origin \
&& git checkout master \
&& git pull origin master \
&& echo "Testing commit: $(git log -1 --pretty=format:'%h %s (author: %cn)')"
- name: "Cache"
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
./target
key: ${{ runner.os }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- 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: "Install build"
run: pip3 install build
- name: "Build wheel"
run: python3 -m build --wheel --config-setting=--build-option=--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
test-bdk-ffi-latest-windows-wheels:
name: "Build and run unittest on Windows wheels against the latest commit on bdk-ffi"
runs-on: windows-2022
strategy:
matrix:
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
persist-credentials: false
fetch-depth: 0
- name: "Update bdk-ffi submodule to latest"
run: |
cd ./bdk-ffi/;
git fetch origin;
git checkout master;
git pull origin master;
echo "Testing commit: $(git log -1 --pretty=format:'%h %s (author: %cn)')"
- name: "Cache"
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
./target
key: ${{ runner.os }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- 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: "Install build"
run: pip install build
- name: "Build wheel"
run: python -m build --wheel --verbose
- name: "Install dependencies"
run: Get-ChildItem 'D:\a\bdk-python\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
ruff:
name: "Lint tests"
runs-on: ubuntu-24.04
steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
persist-credentials: false
fetch-depth: 0
- name: "Configure Git safe directory"
run: git config --global --add safe.directory /__w/bdk-python/bdk-python
- name: "Install Ruff"
run: curl -LsSf https://astral.sh/ruff/install.sh | sh
- name: "Lint test targets"
run: ruff check ./tests/