Skip to content

feat(orchestrator): websocket #3034

feat(orchestrator): websocket

feat(orchestrator): websocket #3034

Workflow file for this run

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
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
static_analysis:
runs-on: ubuntu-22.04
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ubuntu-22.04
- 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
gui_eslint:
runs-on: ubuntu-22.04
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ubuntu-22.04
- name: Run GUI eslint checks
run: just check_gui_eslint
gui_tsc:
runs-on: ubuntu-22.04
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ubuntu-22.04
- name: Run GUI generate bindings
run: just bindings
- name: Run GUI tsc checks
run: just check_gui_tsc
sqlx_test:
runs-on: ubuntu-22.04
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ubuntu-22.04
- name: Run sqlx cache setup script
run: |
just generate-sqlx-cache
build:
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-22.04
- target: x86_64-apple-darwin
os: macos-15-intel
- target: aarch64-apple-darwin
os: macos-15
- target: x86_64-pc-windows-gnu
os: ubuntu-22.04
runs-on: ${{ matrix.os }}
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ${{ matrix.os }}
target: ${{ matrix.target }}
- name: Build binary
run: cargo build -p swap --target ${{ matrix.target }} -vv
- 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:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-15]
runs-on: ${{ matrix.os }}
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ${{ matrix.os }}
- name: Run monero-harness tests
if: matrix.os == 'ubuntu-22.04'
run: cargo test --package monero-harness --all-features
- name: Run library tests
run: cargo test --lib
docker_tests:
strategy:
fail-fast: false
matrix:
include:
- package: swap
test_name: happy_path
- package: swap
test_name: happy_path_alice_developer_tip
- package: swap
test_name: happy_path_alice_developer_tip_subaddress
- package: swap
test_name: happy_path_restart_bob_after_xmr_locked
- package: swap
test_name: happy_path_restart_bob_before_xmr_locked
- package: swap
test_name: happy_path_restart_alice_after_xmr_locked
- package: swap
test_name: alice_and_bob_refund_using_cancel_and_refund_command
- package: swap
test_name: alice_and_bob_refund_using_cancel_then_refund_command
- package: swap
test_name: alice_and_bob_refund_using_cancel_and_refund_command_timelock_not_expired
- package: swap
test_name: alice_manually_punishes_after_bob_dead_and_bob_cancels
- package: swap
test_name: punish
- package: swap
test_name: alice_punishes_after_restart_bob_dead
- package: swap
test_name: alice_manually_punishes_after_bob_dead
- package: swap
test_name: alice_refunds_after_restart_bob_refunded
- package: swap
test_name: ensure_same_swap_id
- package: swap
test_name: concurrent_bobs_before_xmr_lock_proof_sent
- package: swap
test_name: concurrent_bobs_after_xmr_lock_proof_sent
- package: swap
test_name: alice_manually_redeems_after_enc_sig_learned
- package: swap
test_name: happy_path_bob_offline_while_alice_redeems_btc
- package: swap
test_name: alice_empty_balance_after_started_btc_early_refund
- package: swap
test_name: alice_broken_wallet_rpc_after_started_btc_early_refund
- package: swap
test_name: happy_path_alice_does_not_send_transfer_proof
- package: swap
test_name: partial_refund_bob_claims_amnesty
- package: swap
test_name: partial_refund_alice_burns
- package: swap
test_name: partial_refund_alice_grants_final_amnesty
- package: swap
test_name: swap_rejected_deposit_too_small
- package: swap
test_name: partial_refund_bob_restart_detects_withhold
- package: swap
test_name: alice_and_bob_refund_using_cancel_and_refund_command_partial_refund
- package: swap
test_name: alice_and_bob_refund_using_cancel_and_refund_command_partial_refund_withheld
- package: monero-tests
test_name: reserve_proof
- package: monero-tests
test_name: transaction_keys
- package: monero-tests
test_name: transfers
- package: monero-tests
test_name: transfers_wrong_key
runs-on: ubuntu-22.04
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ubuntu-22.04
- name: Run test ${{ matrix.test_name }}
run: cargo test --package ${{ matrix.package }} --test ${{ matrix.test_name }} -- --nocapture
check_stable:
runs-on: ubuntu-22.04
if: github.event_name == 'push' || !github.event.pull_request.draft
steps:
- uses: actions/checkout@v4
- name: Setup build environment (cli tools, dependencies)
uses: ./.github/actions/setup-build-environment
with:
host: ubuntu-22.04
- name: Run cargo check on stable rust
run: cargo check --all-targets