mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2024-10-31 15:20:15 +00:00
1820139786
Invoking cargo tomlfmt on all files is a PITA and as we can see from the CI scripts, it is often forgotten to as new crates are added to the workspace. Using dprint for toml files fixes this. Unfortunately, we can't use dprint for Rust code yet because there hasn't been a release of rustfmt in quite a while but we are already using features from a newer rustfmt via rustup.
123 lines
3.6 KiB
YAML
123 lines
3.6 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request: # Need to run on pull-requests, otherwise PRs from forks don't run
|
|
push:
|
|
branches:
|
|
- 'staging' # Bors uses this branch
|
|
- 'trying' # Bors uses this branch
|
|
- '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/checkout@v2
|
|
|
|
- uses: Swatinem/rust-cache@v1.2.0
|
|
|
|
- name: Check code formatting
|
|
run: cargo fmt --all -- --check
|
|
|
|
- name: Check formatting
|
|
uses: dprint/check@v1.3
|
|
|
|
- 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:
|
|
strategy:
|
|
matrix:
|
|
os: [ ubuntu-latest, 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:
|
|
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,
|
|
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,
|
|
alice_punishes_after_restart_punish_timelock_expired,
|
|
alice_refunds_after_restart_bob_refunded,
|
|
ensure_same_swap_id,
|
|
concurrent_bobs_after_xmr_lock_proof_sent,
|
|
concurrent_bobs_before_xmr_lock_proof_sent
|
|
]
|
|
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 }} -- --nocapture
|