Publish bdkpython to PyPI #4
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: Publish bdkpython to PyPI | |
| on: [workflow_dispatch] | |
| permissions: {} | |
| jobs: | |
| build-manylinux_2_28-x86_64-wheels: | |
| name: "Build Manylinux 2.28 x86_64 wheel" | |
| 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: # Update this list whenever the docker image is updated (check /opt/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: "Set up Rust" | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| - name: "Generate bdk.py and binaries" | |
| run: bash ./scripts/generate-linux.sh | |
| - name: "Install build" | |
| run: ${PYBIN}/pip 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: ${PYBIN}/python -m build --wheel --config-setting=--build-option=--plat-name=manylinux_2_28_x86_64 --verbose | |
| - 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 | |
| build-macos-arm64-wheels: | |
| name: "Build macOS arm64 wheel" | |
| runs-on: macos-15 | |
| 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: "Install Python" | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - 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: "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: "Upload artifacts" | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: bdkpython-macos-arm64-${{ matrix.python }} | |
| path: /Users/runner/work/bdk-python/bdk-python/dist/*.whl | |
| build-macos-x86_64-wheels: | |
| name: "Build macOS x86_64 wheel" | |
| 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: "Install Python" | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - 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: "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_x86_64 --verbose | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: bdkpython-macos-x86_64-${{ matrix.python }} | |
| path: /Users/runner/work/bdk-python/bdk-python/dist/*.whl | |
| build-windows-wheels: | |
| name: "Build Windows wheel" | |
| 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 | |
| - uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - 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: "Install build" | |
| run: pip install build | |
| - name: "Build wheel" | |
| run: python -m build --wheel --verbose | |
| - name: "Upload artifacts" | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: bdkpython-win-${{ matrix.python }} | |
| path: D:\a\bdk-python\bdk-python\dist\*.whl | |
| publish-pypi: | |
| name: "Publish on PyPI" | |
| runs-on: ubuntu-24.04 | |
| needs: [build-manylinux_2_28-x86_64-wheels, build-macos-arm64-wheels, build-macos-x86_64-wheels, build-windows-wheels] | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: "Download artifacts in dist/ directory" | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: dist/ | |
| # - name: "Publish on test PyPI" | |
| # uses: pypa/gh-action-pypi-publish@release/v1 | |
| # with: | |
| # user: __token__ | |
| # password: ${{ secrets.TEST_PYPI_API_TOKEN }} | |
| # repository_url: https://test.pypi.org/legacy/ | |
| # packages_dir: dist/*/ | |
| - name: "Publish on PyPI" | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| user: __token__ | |
| password: ${{ secrets.PYPI_API_TOKEN }} | |
| packages_dir: dist/*/ |