Create new v2_to_v2 integration test #182
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
# Copied from [bdk-ffi](https://github.com/bitcoindevkit/bdk-ffi/blob/master/.github/workflows/test-python.yaml) | |
name: Build and Test Python | |
on: [push, pull_request] | |
jobs: | |
build-wheels-and-test: | |
name: "Build and test wheels with Redis" | |
runs-on: ubuntu-latest | |
services: | |
redis: | |
image: redis:7-alpine | |
#options: >- | |
# --health-cmd "redis-cli ping" | |
# --health-interval 10s | |
# --health-timeout 5s | |
# --health-retries 5 | |
defaults: | |
run: | |
working-directory: python | |
strategy: | |
matrix: | |
include: | |
- python: "3.9" | |
python_dir: "cp39-cp39" | |
- python: "3.10" | |
python_dir: "cp310-cp310" | |
- python: "3.11" | |
python_dir: "cp311-cp311" | |
- python: "3.12" | |
python_dir: "cp312-cp312" | |
- python: "3.13" | |
python_dir: "cp313-cp313" | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
- name: "Install Rust 1.78.0" | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.78.0 | |
- name: "Install Python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: "Install build dependencies" | |
run: | | |
sudo apt update | |
sudo apt install -y build-essential python3-dev | |
- name: "Use cache" | |
uses: Swatinem/rust-cache@v2 | |
- name: "Generate payjoin-ffi.py and binaries" | |
run: | | |
PYBIN=$(dirname $(which python)) | |
PYBIN="$PYBIN" bash ./scripts/generate_linux.sh | |
- name: "Build wheel" | |
# Specifying the plat-name argument is necessary to build a wheel with the correct name, | |
# see issue BDK#350 for more information | |
run: python setup.py bdist_wheel --verbose | |
- name: "Install wheel" | |
run: pip install ./dist/*.whl | |
- name: "Run tests" | |
env: | |
REDIS_URL: redis://localhost:6379 | |
run: python -m unittest -v | |
build-macos: | |
name: "Build and test macOS" | |
runs-on: macos-13 | |
defaults: | |
run: | |
working-directory: python | |
strategy: | |
matrix: | |
python: | |
- "3.12" | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: "Install Rust 1.78.0" | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.78.0 | |
- name: "Install Python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install Docker CLI | |
run: | | |
brew install docker | |
docker --version | |
- name: "Install Redis" | |
run: | | |
brew update | |
brew install redis | |
- name: "Start Redis" | |
run: | | |
redis-server --daemonize yes | |
for i in {1..10}; do | |
if redis-cli ping | grep -q PONG; then | |
echo "Redis is ready" | |
break | |
fi | |
echo "Waiting for Redis..." | |
sleep 1 | |
done | |
- name: "Use cache" | |
uses: Swatinem/rust-cache@v2 | |
- name: "Generate payjoin-ffi.py and binaries" | |
run: bash ./scripts/generate_macos.sh | |
- name: "Build x86_64 wheel" | |
# Specifying the plat-name argument is necessary to build a wheel with the correct name, | |
# see issue BDK#350 for more information | |
run: python3 setup.py bdist_wheel --plat-name macosx_11_0_x86_64 --verbose | |
- name: "Install wheel" | |
run: pip3 install ./dist/*.whl | |
- name: "Run tests" | |
env: | |
REDIS_URL: redis://localhost:6379 | |
run: python3 -m unittest -v | |
- name: "Build arm64 wheel" | |
run: python3 setup.py bdist_wheel --plat-name macosx_11_0_arm64 --verbose | |
# Note: You can't install the arm64 wheel on the CI, so we skip these steps and simply test that the wheel builds |