name: Build Python wheels on: [push, pull_request] # 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-wheel: name: 'Build Manylinux 2014 x86_64 wheel' runs-on: ubuntu-latest container: image: quay.io/pypa/manylinux2014_x86_64 env: PLAT: manylinux2014_x86_64 PYBIN: '/opt/python/${{ matrix.python }}/bin' strategy: matrix: python: # Update this list whenever the docker image is updated (check /opt/python/) # - cp36-cp36m # - cp37-cp37m # - cp38-cp38 # - cp39-cp39 - cp310-cp310 # - pp37-pypy37_pp73 # - pp38-pypy38_pp73 steps: - name: checkout uses: actions/checkout@v2 with: submodules: true - uses: actions-rs/toolchain@v1 with: toolchain: stable - name: install requirements run: | cd bdk-python ${PYBIN}/pip install -r requirements.txt - name: generate bindings run: | cd bdk-python bash generate.sh - name: build wheel run: | cd bdk-python ${PYBIN}/pip wheel . --no-deps -w /tmp/wheelhouse - name: repair wheel run: | cd bdk-python auditwheel repair /tmp/wheelhouse/* --plat "$PLAT" -w /tmp/wheelhouse-repaired - uses: actions/upload-artifact@v2 with: name: bdkpython-manylinux2014-x86_64-${{ matrix.python }} path: /tmp/wheelhouse-repaired/*.whl build-macos-universal-wheel: name: 'Build macOS universal wheel' runs-on: macos-latest strategy: matrix: python: # - '3.7' # - '3.8' # - '3.9' - '3.10' steps: - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} - run: python3 --version - name: checkout uses: actions/checkout@v2 with: submodules: true - run: rustup target add aarch64-apple-darwin - run: | cd bdk-python pip3 install --user -r requirements.txt - run: | cd bdk-python pip3 install --user wheel - run: | cd bdk-python bash generate.sh - name: build wheel env: ARCHFLAGS: "-arch x86_64 -arch arm64" run: | cd bdk-python python3 setup.py -v bdist_wheel - uses: actions/upload-artifact@v2 with: name: bdkpython-macos-${{ matrix.python }} path: dist/*.whl build-windows-wheel: name: 'Build windows wheel' runs-on: windows-latest strategy: matrix: python: # - '3.7' # - '3.8' # - '3.9' - '3.10' steps: - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} - run: python --version - name: checkout uses: actions/checkout@v2 with: submodules: true - run: | cd bdk-python pip install --user -r requirements.txt - run: | cd bdk-python bash generate.sh shell: bash - run: | cd bdk-python pip install --user wheel - name: build wheel run: | cd bdk-python python setup.py -v bdist_wheel - uses: actions/upload-artifact@v2 with: name: bdkpython-win-${{ matrix.python }} path: dist/*.whl