name: Continuous integration on: push: branches: - master tags: - v* paths-ignore: - 'README.md' pull_request: branches: - master jobs: check-style: name: Check style runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.3.5 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true components: clippy, rustfmt - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo fmt uses: actions-rs/cargo@v1.0.3 with: command: fmt args: --all -- --check - name: Cargo clippy uses: actions-rs/cargo@v1.0.3 with: command: clippy - name: Check rustdoc links run: RUSTDOCFLAGS="--deny broken_intra_doc_links" cargo doc --verbose --workspace --no-deps --document-private-items check-code: name: Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.3.5 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo check all targets (use Cargo.toml in workspace) uses: actions-rs/cargo@v1.0.3 with: command: check args: --all-targets - name: Cargo check HTTP client uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path http-client/Cargo.toml - name: Cargo check HTTP server uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path http-server/Cargo.toml - name: Cargo check WS client uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path ws-client/Cargo.toml - name: Cargo check WS server uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path ws-server/Cargo.toml - name: Cargo check types uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path types/Cargo.toml - name: Cargo check utils uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path utils/Cargo.toml - name: Cargo check proc macros uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path proc-macros/Cargo.toml - name: Cargo check test utils uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path test-utils/Cargo.toml - name: Cargo check examples uses: actions-rs/cargo@v1.0.3 with: command: check args: --manifest-path examples/Cargo.toml tests: name: Run tests Ubuntu runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2.3.5 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo build uses: actions-rs/cargo@v1.0.3 with: command: build args: --workspace - name: Cargo test uses: actions-rs/cargo@v1.0.3 with: command: test tests_macos: name: Run tests macos runs-on: macos-latest steps: - name: Checkout sources uses: actions/checkout@v2.3.5 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo build uses: actions-rs/cargo@v1.0.3 with: command: build args: --workspace - name: Cargo test uses: actions-rs/cargo@v1.0.3 with: command: test tests_windows: name: Run tests Windows runs-on: windows-latest steps: - name: Checkout sources uses: actions/checkout@v2.3.5 - name: Install Rust stable toolchain uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true - name: Rust Cache uses: Swatinem/rust-cache@v1.3.0 - name: Cargo build uses: actions-rs/cargo@v1.0.3 with: command: build args: --workspace - name: Cargo test uses: actions-rs/cargo@v1.0.3 with: command: test