Improve measured hot paths #494
Workflow file for this run
This file contains hidden or 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: Main CI | |
| on: [pull_request] | |
| jobs: | |
| lint: | |
| name: Check and Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install libzmq | |
| run: sudo apt update && sudo apt install libzmq3-dev | |
| - uses: actions/checkout@v2 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: stable | |
| override: true | |
| components: clippy | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cargo/ | |
| key: cache-cargo-deps-${{ runner.os }}-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} | |
| - name: Check Tokio version | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --all --all-targets -- --deny warnings | |
| - name: Check Async-std version | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: clippy | |
| args: --all --all-targets --no-default-features --features async-std-runtime,all-transport,async-dispatcher-macros -- --deny warnings | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Install libzmq | |
| run: sudo apt update && sudo apt install libzmq3-dev | |
| - uses: actions/checkout@v2 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: stable | |
| override: true | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cargo/ | |
| key: cache-cargo-deps-${{ runner.os }}-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} | |
| - name: Test Tokio version | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --all | |
| - name: Test Async-std version | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --all --no-default-features --features async-std-runtime,all-transport | |
| - name: Test Async-dispatcher version | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: test | |
| args: --all --no-default-features --features async-dispatcher-runtime,all-transport,async-dispatcher-macros | |
| perf-smoke: | |
| name: Performance Smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install libzmq | |
| run: sudo apt update && sudo apt install libzmq3-dev | |
| - uses: actions/checkout@v2 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: stable | |
| override: true | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cargo/ | |
| key: cache-cargo-deps-${{ runner.os }}-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} | |
| - name: Compile benchmark targets | |
| run: cargo bench --no-run | |
| - name: Check perf suite dry run | |
| run: python3 scripts/run_perf_suite.py --profile smoke --impl zmqrs,libzmq --transport tcp --run-id ci-dry-run --dry-run | |
| - name: Run perf suite smoke | |
| run: python3 scripts/run_perf_suite.py --profile smoke --impl zmqrs,libzmq --transport tcp --run-id ci-smoke | |
| windows-ipc: | |
| name: Windows IPC (${{ matrix.toolchain }}) | |
| runs-on: windows-latest | |
| strategy: | |
| matrix: | |
| toolchain: [stable, "1.85.0"] | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: ${{ matrix.toolchain }} | |
| override: true | |
| - name: Check Windows IPC | |
| run: cargo check --lib --no-default-features --features tokio-runtime,ipc-transport,tcp-transport | |
| - name: Test Windows IPC | |
| run: cargo test --no-default-features --features tokio-runtime,ipc-transport,tcp-transport | |
| msrv: | |
| name: MSRV Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install libzmq | |
| run: sudo apt update && sudo apt install libzmq3-dev | |
| - uses: actions/checkout@v2 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: stable | |
| override: true | |
| - name: Read MSRV from Cargo.toml | |
| id: msrv | |
| run: echo "version=$(grep '^rust-version' Cargo.toml | sed 's/.*"\(.*\)"/\1/')" >> "$GITHUB_OUTPUT" | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: ${{ steps.msrv.outputs.version }} | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cargo/ | |
| key: cache-cargo-deps-${{ runner.os }}-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} | |
| - name: Generate lockfile with stable | |
| run: cargo +stable generate-lockfile | |
| - name: Check default features with MSRV | |
| run: cargo +${{ steps.msrv.outputs.version }} check --all | |
| - name: Check async-std features with MSRV | |
| run: cargo +${{ steps.msrv.outputs.version }} check --all --no-default-features --features async-std-runtime,all-transport | |
| nightly: | |
| name: Nightly Check | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| steps: | |
| - name: Install libzmq | |
| run: sudo apt update && sudo apt install libzmq3-dev | |
| - uses: actions/checkout@v2 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: nightly | |
| override: true | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cargo/ | |
| key: cache-cargo-deps-${{ runner.os }}-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} | |
| - name: Check default features with nightly | |
| run: cargo +nightly check --all | |
| - name: Check async-std features with nightly | |
| run: cargo +nightly check --all --no-default-features --features async-std-runtime,all-transport | |
| fmt: | |
| name: Formatting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - uses: actions-rs/toolchain@v1 | |
| with: | |
| profile: minimal | |
| toolchain: nightly | |
| override: true | |
| components: rustfmt | |
| - uses: actions-rs/cargo@v1 | |
| with: | |
| command: fmt | |
| args: --all -- --check |