upgrade(swap): Upgrade bdk library #806
This file contains 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: CI | |
on: | |
pull_request: # Need to run on pull-requests, otherwise PRs from forks don't run | |
push: | |
branches: | |
- "master" # Always build head of master for the badge in the README | |
jobs: | |
static_analysis: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: "1.74" | |
components: clippy,rustfmt | |
- uses: Swatinem/[email protected] | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Check formatting | |
uses: dprint/[email protected] | |
with: | |
dprint-version: 0.39.1 | |
- name: Run clippy with default features | |
run: cargo clippy --workspace --all-targets -- -D warnings | |
- name: Run clippy with all features enabled | |
run: cargo clippy --workspace --all-targets --all-features -- -D warnings | |
bdk_test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: Swatinem/[email protected] | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Build swap | |
run: cargo build --bin swap | |
- name: Run BDK regression script | |
run: ./swap/tests/bdk.sh | |
sqlx_test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: Swatinem/[email protected] | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Install sqlx-cli | |
run: cargo install --locked --version 0.6.3 sqlx-cli | |
- name: Run sqlite_dev_setup.sh script | |
run: | | |
cd swap | |
./sqlite_dev_setup.sh | |
build: | |
strategy: | |
matrix: | |
include: | |
- target: x86_64-unknown-linux-gnu | |
os: ubuntu-latest | |
- target: armv7-unknown-linux-gnueabihf | |
os: ubuntu-latest | |
- target: x86_64-apple-darwin | |
os: macos-13 | |
- target: aarch64-apple-darwin | |
os: macos-latest | |
- target: x86_64-pc-windows-msvc | |
os: windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: Swatinem/[email protected] | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: "1.74" | |
targets: armv7-unknown-linux-gnueabihf | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
if: matrix.os == 'ubuntu-latest' # This must match the platform value defined above. | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Build binary | |
if: matrix.target != 'armv7-unknown-linux-gnueabihf' | |
run: cargo build -p swap --target ${{ matrix.target }} | |
- name: Install cross (armv7) | |
if: matrix.target == 'armv7-unknown-linux-gnueabihf' | |
run: cargo install cross --locked | |
- name: Build binary (armv7) | |
if: matrix.target == 'armv7-unknown-linux-gnueabihf' | |
run: cross build -p swap --target ${{ matrix.target }} | |
- name: Upload swap binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: swap-${{ matrix.target }} | |
path: target/${{ matrix.target }}/debug/swap | |
- name: Upload asb binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: asb-${{ matrix.target }} | |
path: target/${{ matrix.target }}/debug/asb | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: (Free disk space on Ubuntu) | |
if: matrix.os == 'ubuntu-latest' | |
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be | |
with: | |
# removing all of these takes ~10 mins, so just do as needed | |
android: true | |
dotnet: true | |
haskell: true | |
docker-images: false | |
large-packages: false | |
swap-storage: false | |
tool-cache: false | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
if: matrix.os == 'ubuntu-latest' # This must match the platform value defined above. | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: Swatinem/[email protected] | |
- name: Build tests | |
run: cargo build --tests --workspace --all-features | |
- name: Run monero-harness tests | |
if: matrix.os == 'ubuntu-latest' | |
run: cargo test --package monero-harness --all-features | |
- name: Run library tests for swap | |
run: cargo test --package swap --lib | |
docker_tests: | |
strategy: | |
matrix: | |
test_name: | |
[ | |
happy_path, | |
happy_path_restart_bob_after_xmr_locked, | |
happy_path_restart_bob_before_xmr_locked, | |
happy_path_restart_alice_after_xmr_locked, | |
alice_and_bob_refund_using_cancel_and_refund_command, | |
alice_and_bob_refund_using_cancel_then_refund_command, | |
alice_and_bob_refund_using_cancel_and_refund_command_timelock_not_expired, | |
alice_manually_punishes_after_bob_dead_and_bob_cancels, | |
punish, | |
alice_punishes_after_restart_bob_dead, | |
alice_manually_punishes_after_bob_dead, | |
alice_refunds_after_restart_bob_refunded, | |
ensure_same_swap_id, | |
concurrent_bobs_before_xmr_lock_proof_sent, | |
concurrent_bobs_after_xmr_lock_proof_sent, | |
alice_manually_redeems_after_enc_sig_learned, | |
happy_path_bob_offline_while_alice_redeems_btc, | |
] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: Swatinem/[email protected] | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Run test ${{ matrix.test_name }} | |
run: cargo test --package swap --test ${{ matrix.test_name }} -- --nocapture | |
rpc_tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: Swatinem/[email protected] | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Run RPC server tests | |
run: cargo test --package swap --test rpc -- --nocapture | |
check_stable: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/[email protected] | |
- name: Install dependencies required by Tauri v2 (ubuntu only) | |
run: | | |
sudo apt update | |
sudo apt install libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libxdo-dev \ | |
libssl-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- name: Run cargo check on stable rust | |
run: cargo check --all-targets |