Multi-Channel core support & basic rdma implementation #263
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: Build | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| workflow_dispatch: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| COMMON_FEATURES: "sign,encrypt,compress,kerberos" | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rustlang/rust:nightly | |
| timeout-minutes: 10 | |
| strategy: | |
| matrix: | |
| compile_features: [ async, multi_threaded, single_threaded ] | |
| services: | |
| samba: | |
| image: ghcr.io/avivnaaman/smb-tests:latest | |
| env: | |
| ACCOUNT_LocalAdmin: 123456 | |
| SAMBA_CONF_LOG_LEVEL: 1 | |
| SAMBA_VOLUME_CONFIG_MyShare: "[MyShare]; path=/shares/MyShare; read only = no; browseable = yes; create mask = 0777; directory mask = 0777; smb encrypt = desired" | |
| SAMBA_VOLUME_CONFIG_PublicShare: "[PublicShare]; path=/shares/PublicShare; read only = no; browseable = yes; guest ok = yes; smb encrypt = disabled" | |
| SAMBA_GLOBAL_CONFIG_smb_SPACE_ports: "139 445" | |
| SAMBA_GLOBAL_CONFIG_smb_SPACE_encrypt: "auto" | |
| options: --name samba --privileged --cap-add NET_ADMIN | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Add QUIC/RDMA tests | |
| if: ${{ matrix.compile_features == 'async' }} | |
| run: echo "COMMON_FEATURES=${COMMON_FEATURES},quic,rdma" >> $GITHUB_ENV | |
| - name: Format/${{ matrix.compile_features }} | |
| run: | | |
| rustup component add rustfmt | |
| cargo fmt --verbose --check | |
| - name: Lint/${{ matrix.compile_features }} | |
| run: | | |
| rustup component add clippy | |
| cargo clippy --verbose --no-default-features --features "${{ matrix.compile_features }},${COMMON_FEATURES}" -- -Dclippy::all | |
| - name: Tests/${{ matrix.compile_features }} | |
| run: | | |
| export SMB_RUST_TESTS_SERVER=samba | |
| export RUST_LOG=debug | |
| cargo test --verbose --no-default-features --features "${{ matrix.compile_features }},${COMMON_FEATURES}" -- --nocapture | |
| # Test without encryption and compression | |
| cargo test --verbose --no-default-features --features "${{ matrix.compile_features }},sign" -- --nocapture | |
| # Test signing with specific algorithms | |
| cargo test --verbose --no-default-features --features "${{ matrix.compile_features }},sign_cmac" -- --nocapture | |
| cargo test --verbose --no-default-features --features "${{ matrix.compile_features }},sign_gmac" -- --nocapture | |
| cargo test --verbose --no-default-features --features "${{ matrix.compile_features }},sign_hmac" -- --nocapture | |
| - name: Build/${{ matrix.compile_features }} | |
| run: cargo build --verbose --no-default-features --features "${{ matrix.compile_features }},${COMMON_FEATURES}" | |
| build-msrv: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rust:1.85 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build | |
| run: | | |
| for td_model in async multi_threaded single_threaded; do | |
| echo "Compiling with features: $td_model, ${COMMON_FEATURES}" | |
| cargo build --verbose --no-default-features --features "$td_model,${COMMON_FEATURES}" | |
| done | |
| - name: Doc | |
| run: | | |
| for td_model in async multi_threaded single_threaded; do | |
| echo "Generating documentation with features: $td_model, ${COMMON_FEATURES}" | |
| cargo doc --verbose --no-default-features --features "$td_model,${COMMON_FEATURES}" | |
| done |