Skip to content

feat: add Stellar chain support with Soroban auth signing and x402 payments #439

feat: add Stellar chain support with Soroban auth signing and x402 payments

feat: add Stellar chain support with Soroban auth signing and x402 payments #439

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
readme:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Check READMEs are up to date
run: ./readme/generate.sh --check
rust:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ows
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Rust toolchain
run: rustup show active-toolchain || rustup install
- name: Cache cargo registry and build
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: |
~/.cargo/registry
~/.cargo/git
ows/target
key: ${{ runner.os }}-cargo-${{ hashFiles('ows/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Verify Cargo.lock is up to date
run: cargo metadata --locked --format-version 1 > /dev/null
- name: Check formatting
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --workspace -- -D warnings
- name: Run tests
run: cargo test --workspace
node:
runs-on: ubuntu-latest
defaults:
run:
working-directory: bindings/node
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "22"
- name: Install Rust toolchain
run: rustup show active-toolchain || rustup install
- name: Cache cargo registry and build
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: |
~/.cargo/registry
~/.cargo/git
bindings/node/target
key: ${{ runner.os }}-node-cargo-${{ hashFiles('bindings/node/Cargo.lock') }}
restore-keys: ${{ runner.os }}-node-cargo-
- name: Verify Cargo.lock is up to date
run: cargo metadata --locked --format-version 1 > /dev/null
- name: Install dependencies
run: npm install
- name: Build native addon
run: npx napi build --platform --features fast-kdf
- name: Run tests
run: npm test
node-cross-compile:
runs-on: ubuntu-latest
defaults:
run:
working-directory: bindings/node
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "22"
- name: Install Rust toolchain
run: |
rustup update stable
rustup target add aarch64-unknown-linux-gnu
- name: Install zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
with:
version: 0.13.0
- name: Install cargo-zigbuild
uses: taiki-e/install-action@94a7388bec5d4c8dd93e3ebf09e0ff448f3f6f4d # v2.68.35
with:
tool: cargo-zigbuild
- name: Cache cargo registry and build
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: |
~/.cargo/registry
~/.cargo/git
bindings/node/target
key: ${{ runner.os }}-node-cross-cargo-${{ hashFiles('bindings/node/Cargo.lock') }}
restore-keys: ${{ runner.os }}-node-cross-cargo-
- name: Install dependencies
run: npm install --ignore-scripts
- name: Create zig CC wrapper with proper argument quoting
run: |
mkdir -p /tmp/zig-wrappers
printf '#!/bin/bash\nexec zig cc "$@" -target aarch64-linux-gnu.2.17\n' > /tmp/zig-wrappers/cc.sh
chmod +x /tmp/zig-wrappers/cc.sh
echo "CC_aarch64_unknown_linux_gnu=/tmp/zig-wrappers/cc.sh" >> "$GITHUB_ENV"
- name: Cross-compile native addon (aarch64)
run: npx napi build --platform --release --target aarch64-unknown-linux-gnu --zig --zig-abi-suffix 2.17
python:
runs-on: ubuntu-latest
defaults:
run:
working-directory: bindings/python
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.12"
- name: Install Rust toolchain
run: rustup show active-toolchain || rustup install
- name: Cache cargo registry and build
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: |
~/.cargo/registry
~/.cargo/git
bindings/python/target
key: ${{ runner.os }}-python-cargo-${{ hashFiles('bindings/python/Cargo.lock') }}
restore-keys: ${{ runner.os }}-python-cargo-
- name: Verify Cargo.lock is up to date
run: cargo metadata --locked --format-version 1 > /dev/null
- name: Create virtualenv
run: python -m venv .venv
- name: Install Python dependencies
run: |
source .venv/bin/activate
pip install maturin pytest
- name: Build native extension
run: |
source .venv/bin/activate
maturin develop --features fast-kdf
- name: Run tests
run: |
source .venv/bin/activate
pytest