Add simplified Python CI workflow
This commit is contained in:
parent
da4c792046
commit
8240d8dc99
133
.github/workflows/build-python-wheels.yaml
vendored
Normal file
133
.github/workflows/build-python-wheels.yaml
vendored
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
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
|
3
.github/workflows/cont_integration.yml
vendored
3
.github/workflows/cont_integration.yml
vendored
@ -1,7 +1,6 @@
|
|||||||
|
name: bdk-ffi CI
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
name: CI
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
build-test:
|
build-test:
|
||||||
|
165
.github/workflows/publish-python.yaml
vendored
Normal file
165
.github/workflows/publish-python.yaml
vendored
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
name: Build and publish Python wheels
|
||||||
|
on: [workflow_dispatch]
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
publish-pypi:
|
||||||
|
name: 'Publish on PyPI'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [build-manylinux2014-x86_64-wheel, build-macos-universal-wheel, build-windows-wheel]
|
||||||
|
# needs: [build-macos-universal-wheel]
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: 'Download artifacts in dist/ directory'
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
path: dist/
|
||||||
|
|
||||||
|
# - name: Display structure of downloaded files
|
||||||
|
# run: ls -R
|
||||||
|
|
||||||
|
# - 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/*/
|
Loading…
x
Reference in New Issue
Block a user