Merge pull request #1775 from comit-network/dependabot/cargo/anyhow-1… #5128
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: 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: 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 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-12 | |
- 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: 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: 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 --all-features | |
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: Run test ${{ matrix.test_name }} | |
run: cargo test --package swap --all-features --test ${{ matrix.test_name }} -- --nocapture | |
rpc_tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/[email protected] | |
- uses: Swatinem/[email protected] | |
- name: Run RPC server tests | |
run: cargo test --package swap --all-features --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: Run cargo check on stable rust | |
run: cargo check --all-targets |