Skip to content

Merge pull request #127 from AvivNaaman/123-question-set-ressource-pe… #253

Merge pull request #127 from AvivNaaman/123-question-set-ressource-pe…

Merge pull request #127 from AvivNaaman/123-question-set-ressource-pe… #253

Workflow file for this run

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 tests
if: ${{ matrix.compile_features == 'async' }}
run: echo "COMMON_FEATURES=${COMMON_FEATURES},quic" >> $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