dav-server 0.11.0

Rust WebDAV server library. A fork of the webdav-handler crate.
Documentation
on: [push, pull_request]

name: CI

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: check
          args: --all-features

  test:
    name: Test Suite
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - uses: Swatinem/rust-cache@v1
      - name: Check build with --no-default-features
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --no-default-features
      - name: Check build with default features
        uses: actions-rs/cargo@v1
        with:
          command: build
      - name: Check build with warp
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --features warp-compat
      - name: Check build with actix-web
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --features actix-compat
      - name: Check build with caldav
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --features caldav
      - name: Test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features --all

  compliance:
    name: Compliance Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - uses: Swatinem/rust-cache@v1
      - name: Build sample litmus server
        run: cargo build --example sample-litmus-server
      - name: Run sample litmus server
        run: |
          cargo run --example sample-litmus-server -- --memfs --auth &
          sleep 5
      - name: Build litmus
        run: |
          curl -O http://www.webdav.org/neon/litmus/litmus-0.13.tar.gz
          tar xf litmus-0.13.tar.gz
          cd litmus-0.13
          ./configure
          make
      - name: Run litmus protocol compliance test
        run: |
          cd litmus-0.13
          TESTS="http basic copymove locks props" HTDOCS=htdocs TESTROOT=. ./litmus http://localhost:4918/ someuser somepass

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - run: rustup component add rustfmt
      - uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check