-
Notifications
You must be signed in to change notification settings - Fork 6
CI: add trigger tests workflow on bdk-ffi merges #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 5 commits
a621d7c
bea683d
246c8ad
9fdaf6b
674429a
db0fe55
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,283 @@ | ||
| 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: "Install Rust 1.84.1" | ||
| uses: actions-rs/toolchain@v1 | ||
| with: | ||
| toolchain: 1.84.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 | ||
|
|
||
| - name: "Upload artifact test" | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: bdkpython-manylinux_2_28_x86_64-${{ matrix.python }} | ||
| path: /home/runner/work/bdk-python/bdk-python/dist/*.whl | ||
|
|
||
| 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 | ||
|
|
||
| - name: "Upload artifact test" | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: bdkpython-macos-arm64-${{ matrix.python }} | ||
| path: /Users/runner/work/bdk-python/bdk-python/dist/*.whl | ||
|
|
||
| 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 | ||
|
|
||
| - name: "Upload artifact test" | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: bdkpython-macos-x86_64-${{ matrix.python }} | ||
| path: /Users/runner/work/bdk-python/bdk-python/dist/*.whl | ||
|
|
||
| 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: "Upload artifact test" | ||
|
||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: bdkpython-windows-${{ matrix.python }} | ||
| path: D:\a\bdk-python\bdk-python\dist\*.whl | ||
|
|
||
| - 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/ | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an old and deprecated action. You can instead use
which should automatically pick up the rust-toolchain.toml file and grab our desired compiler version.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a valid alternative. However, at the moment the library has an issue in handling the rust_src_dir flag, which we need to specify the path where to find the toml file (inside the submodule).
I created a PR to fix it. While waiting for the fix, we can use it setting a static toolchain version value.