crossfire 3.1.10

channels for async and threads
Documentation
name: cron-dev-arm

on:
  schedule: [cron: "0 */5 * * *"]
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always

jobs:
  build_and_test:

    runs-on: "macos-15"

    steps:
    - uses: actions/checkout@v2
      with:
          ref: dev
    - name: Build
      run: cargo build --verbose

      # We use cargo-nextest because cargo test does not forward cancellation signal
    - uses: taiki-e/install-action@nextest

    - name: Run tests with tokio multi-thread
      run: cd test-suite; RUSTFLAGS="--cfg tokio_unstable" WORKFLOW=1 exec cargo nextest run -F="tokio" --hide-progress-bar -j 1 --no-capture

    - name: Run tests with --release
      run: cd test-suite; RUSTFLAGS="--cfg tokio_unstable" WORKFLOW=1 exec cargo nextest run -F="tokio" --hide-progress-bar -j 1 --no-capture -r

    - name: Run tests with --release tokio single-thread
      run: cd test-suite; RUSTFLAGS="--cfg tokio_unstable" WORKFLOW=1 SINGLE_THREAD_RUNTIME=1 exec cargo nextest run -F="tokio" --hide-progress-bar -j 1 --no-capture -r

    - name: Dump log on cancel
      if: ${{ cancelled() }}
      uses: actions/upload-artifact@v4
      with:
          name: crossfire_ring
          path: /tmp/crossfire_ring.log