From e592e5be583565aea1dcdc5d13f598e60056ff39 Mon Sep 17 00:00:00 2001 From: Nixon Date: Sun, 2 Jun 2024 23:58:35 +0800 Subject: [PATCH] feat: add workflows --- .github/workflows/rust.yml | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .github/workflows/rust.yml diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..57ad4da --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,74 @@ +name: CI +on: + pull_request: + push: + branches: + - main +jobs: + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: rustup component add rustfmt + - run: cargo fmt --all -- --check + + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + - run: cargo check --workspace --all-features --all-targets + + check-no-defaults: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + - run: cargo check --workspace --no-default-features + + clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + - run: rustup component add clippy + - run: cargo clippy --workspace --all-features --all-targets -- -D warnings + + doc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + - run: cargo doc --workspace --all-features --no-deps --document-private-items + env: + RUSTDOCFLAGS: -D warnings + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + - run: cargo test --workspace --all-features --all-targets + + # Note: cargo test --all-targets disables doc tests, so we have to add this to test docs + doctest: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + - run: cargo test --workspace --all-features --doc +