ci: bump GitHub Actions to v5 #76
Workflow file for this run
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: Test Python | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: {} | |
| jobs: | |
| build-manylinux_2_28-x86_64-wheels: | |
| name: "Build and test Manylinux 2.28 x86_64 wheels" | |
| 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@v5 | |
| 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 uv" | |
| uses: astral-sh/setup-uv@v7 | |
| - name: "Set up Rust" | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - name: "Generate bdk.py and binaries" | |
| run: bash ./scripts/generate-linux.sh | |
| - name: "Build wheel" | |
| run: UV_PYTHON=${PYBIN}/python uv build --wheel --config-setting=--build-option=--plat-name=manylinux_2_28_x86_64 --verbose | |
| - name: "Install wheel" | |
| run: uv pip install --system --python ${PYBIN}/python ./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@v5 | |
| with: | |
| name: bdkpython-manylinux_2_28_x86_64-${{ matrix.python }} | |
| path: dist/*.whl | |
| build-macos-arm64-wheels: | |
| name: "Build and test macOS arm64 wheels" | |
| runs-on: macos-15 | |
| strategy: | |
| matrix: | |
| python: | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| fetch-depth: 0 | |
| - name: "Install Python" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: "Install uv" | |
| uses: astral-sh/setup-uv@v7 | |
| - name: "Set up Rust" | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - 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: uv build --wheel --config-setting=--build-option=--plat-name=macosx_11_0_arm64 --verbose | |
| - name: "Install wheel and run tests" | |
| run: | | |
| uv pip install --system --python python3 ./dist/*.whl | |
| python3 -m unittest discover --start "./tests/" --pattern "test_offline_*.py" --verbose | |
| - name: "Upload artifact test" | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: bdkpython-macos-arm64-${{ matrix.python }} | |
| path: dist/*.whl | |
| build-macos-x86_64-wheels: | |
| name: "Build and test macOS x86_64 wheels" | |
| runs-on: macos-15-intel | |
| strategy: | |
| matrix: | |
| python: | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: "Install uv" | |
| uses: astral-sh/setup-uv@v7 | |
| - name: "Set up Rust" | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - name: "Generate bdk.py and binaries" | |
| run: bash ./scripts/generate-macos-x86_64.sh | |
| - name: "Build wheel" | |
| run: uv build --wheel --config-setting=--build-option=--plat-name=macosx_11_0_x86_64 --verbose | |
| - name: "Install wheel" | |
| run: uv pip install --system --python python3 ./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@v5 | |
| with: | |
| name: bdkpython-macos-x86_64-${{ matrix.python }} | |
| path: dist/*.whl | |
| build-windows-wheels: | |
| name: "Build and test Windows wheels" | |
| runs-on: windows-2022 | |
| strategy: | |
| matrix: | |
| python: | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v5 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| fetch-depth: 0 | |
| - name: "Install Python" | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: "Install uv" | |
| uses: astral-sh/setup-uv@v7 | |
| - name: "Set up Rust" | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - name: "Generate bdk.py and binaries" | |
| run: bash ./scripts/generate-windows.sh | |
| - name: "Build wheel" | |
| run: uv build --wheel --verbose | |
| - name: "Upload artifact test" | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: bdkpython-windows-${{ matrix.python }} | |
| path: dist/*.whl | |
| - name: "Install dependencies" | |
| run: Get-ChildItem 'D:\a\bdk-python\bdk-python\dist\*.whl' | ForEach-Object {uv pip install --system --python python $_.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@v5 | |
| 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 uv" | |
| uses: astral-sh/setup-uv@v7 | |
| - name: "Lint test targets" | |
| run: uvx ruff check ./tests/ |