mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2024-10-01 05:45:40 +00:00
638a169a04
The request-response behaviour that is used for sending the transfer proof actually has a functionality for buffering a message if we are currently not connected. However, the request-response behaviour also emits a dial attempt and **drops** all buffered messages if this dial attempt fails. For us, the dial attempt will very likely always fail because Bob is very likely behind NAT and we have to wait for him to reconnect to us. To mitigate this, we build our own buffer within the EventLoop and send transfer proofs as soon as we are connected again. Resolves #348.
137 lines
3.7 KiB
YAML
137 lines
3.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- 'staging'
|
|
- 'trying'
|
|
- 'master'
|
|
|
|
jobs:
|
|
static_analysis:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- uses: Swatinem/rust-cache@v1.2.0
|
|
id: cache
|
|
|
|
- name: Install tomlfmt
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: cargo install cargo-tomlfmt
|
|
|
|
- name: Check Cargo.toml formatting
|
|
run: |
|
|
cargo tomlfmt -d -p Cargo.toml
|
|
cargo tomlfmt -d -p monero-harness/Cargo.toml
|
|
cargo tomlfmt -d -p swap/Cargo.toml
|
|
|
|
- name: Check code formatting
|
|
run: cargo fmt --all -- --check
|
|
|
|
- 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
|
|
|
|
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-latest
|
|
- target: x86_64-pc-windows-msvc
|
|
os: windows-latest
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- uses: Swatinem/rust-cache@v1.2.0
|
|
|
|
- name: Install compiler for armhf arch
|
|
if: matrix.target == 'armv7-unknown-linux-gnueabihf'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install gcc-arm-linux-gnueabihf
|
|
|
|
- name: Build binary
|
|
run: |
|
|
cargo build -p swap --target ${{ matrix.target }}
|
|
|
|
- name: Upload swap binary
|
|
uses: actions/upload-artifact@v2-preview
|
|
with:
|
|
name: swap-${{ matrix.target }}
|
|
path: target/${{ matrix.target }}/debug/swap
|
|
|
|
- name: Upload asb binary
|
|
uses: actions/upload-artifact@v2-preview
|
|
with:
|
|
name: asb-${{ matrix.target }}
|
|
path: target/${{ matrix.target }}/debug/asb
|
|
|
|
test:
|
|
env:
|
|
RUST_TEST_TASKS: 2
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- target: x86_64-unknown-linux-gnu
|
|
os: ubuntu-latest
|
|
- target: x86_64-apple-darwin
|
|
os: macos-latest
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- uses: Swatinem/rust-cache@v1.2.0
|
|
|
|
- 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:
|
|
env:
|
|
TARGET: x86_64-unknown-linux-gnu
|
|
strategy:
|
|
matrix:
|
|
test_name: [
|
|
happy_path,
|
|
happy_path_restart_bob_after_xmr_locked,
|
|
happy_path_restart_bob_before_xmr_locked,
|
|
bob_refunds_using_cancel_and_refund_command,
|
|
bob_refunds_using_cancel_and_refund_command_timelock_not_expired,
|
|
bob_refunds_using_cancel_and_refund_command_timelock_not_expired_force,
|
|
punish
|
|
]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- uses: Swatinem/rust-cache@v1.2.0
|
|
|
|
- name: Run test ${{ matrix.test_name }}
|
|
run: cargo test --package swap --all-features --test ${{ matrix.test_name }} ""
|
|
env:
|
|
MONERO_ADDITIONAL_SLEEP_PERIOD: 60000
|
|
RUST_MIN_STACK: 16777216 # 16 MB. Default is 8MB. This is fine as in tests we start 2 programs: Alice and Bob.
|