From 5421149c326a658f4d265ebc60f4a3e13d96c926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABlle=20Huisman?= Date: Mon, 25 Aug 2025 19:23:39 +0200 Subject: [PATCH] ci: improve workflows --- .github/workflows/ci.yml | 48 +++++++++++++++++++++++++---------- .github/workflows/website.yml | 4 +-- .pre-commit-config.yaml | 37 ++++++++++++++++++++++----- .prettierrc.json | 3 +-- Cargo.toml | 2 +- deny.toml | 20 +++++++++++++++ 6 files changed, 89 insertions(+), 25 deletions(-) create mode 100644 deny.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e1f2a0..1c426fb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,14 +9,14 @@ on: permissions: contents: read -env: - RUSTFLAGS: '-Dwarnings' - jobs: - test: - name: Test + lint: + name: Lint runs-on: ubuntu-latest + env: + RUSTFLAGS: '-Dwarnings' + steps: - name: Checkout uses: actions/checkout@v5 @@ -27,18 +27,40 @@ jobs: components: clippy, rustfmt target: wasm32-unknown-unknown - - name: Install Cargo packages - run: cargo install wasm-pack + - name: Install Cargo Binary Install + uses: cargo-bins/cargo-binstall@main - - name: Check formatting - run: cargo fmt --all --check + - name: Install crates + run: cargo binstall -y --force cargo-deny cargo-machete cargo-sort - name: Lint run: cargo clippy --all-features --locked + - name: Check dependencies + run: cargo deny check + + - name: Check unused dependencies + run: cargo machete + + - name: Check manifest formatting + run: cargo sort --workspace --check + + - name: Check formatting + run: cargo fmt --all --check + + test: + name: Test + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Set up Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: clippy, rustfmt + target: wasm32-unknown-unknown + - name: Test run: cargo test --all-features --locked --release - - - name: Test in Browser - run: wasm-pack test --headless --release --chrome --firefox - working-directory: packages/dom diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 2680a45..ee0d710 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -19,7 +19,6 @@ jobs: - name: Set up Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: - components: clippy, rustfmt target: wasm32-unknown-unknown - name: Install Cargo Binary Install @@ -44,7 +43,6 @@ jobs: - name: Set up Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: - components: clippy, rustfmt target: wasm32-unknown-unknown - name: Install Cargo Binary Install @@ -54,7 +52,7 @@ jobs: run: cargo binstall --force -y mdbook mdbook-tabs mdbook-trunk trunk - name: Install Node.js dependencies - run: npm install + run: npm ci - name: Build Book run: mdbook build diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5e063bb..7d8ba4f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,14 +1,39 @@ repos: + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v3.1.0 + hooks: + - id: prettier + language: node + additional_dependencies: + - prettier@^3.6.2 + - repo: https://github.com/doublify/pre-commit-rust rev: v1.0 hooks: - id: fmt - id: clippy - - repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.1.0 + - repo: https://github.com/EmbarkStudios/cargo-deny + rev: 0.18.4 hooks: - - id: prettier - language: node - additional_dependencies: - - prettier@^3.2.5 + - id: cargo-deny + + # - repo: https://github.com/bnjbvr/cargo-machete + # rev: ba1bcd4 + # hooks: + # - id: cargo-machete + - repo: local + hooks: + - id: cargo-machete + name: cargo-machete + language: rust + entry: cargo machete + types: [file, toml] + files: Cargo\.(toml|lock) + pass_filenames: false + + - repo: https://github.com/DevinR528/cargo-sort + rev: v2.0.1 + hooks: + - id: cargo-sort + args: ['--workspace'] diff --git a/.prettierrc.json b/.prettierrc.json index 7fd3381..76bf1ca 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -2,6 +2,5 @@ "bracketSpacing": false, "printWidth": 120, "singleQuote": true, - "tabWidth": 4, - "trailingComma": "none" + "tabWidth": 4 } diff --git a/Cargo.toml b/Cargo.toml index 41b59a4..039a30a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,6 @@ version = "0.0.1" log = "0.4.22" regex = "1.10.6" thiserror = "2.0.0" -web-sys = "0.3.70" wasm-bindgen = "0.2.93" wasm-bindgen-test = "0.3.42" +web-sys = "0.3.70" diff --git a/deny.toml b/deny.toml new file mode 100644 index 0000000..87cde1e --- /dev/null +++ b/deny.toml @@ -0,0 +1,20 @@ +[graph] +all-features = true + +[advisories] +ignore = [ + { id = "RUSTSEC-2024-0436", reason = "No maintained version available for `paste`." }, +] + +[bans] +allow-wildcard-paths = true +multiple-versions = "allow" +wildcards = "deny" + +[licenses] +allow = ["Apache-2.0", "BSD-2-Clause", "MIT", "Unicode-3.0"] +confidence-threshold = 1.0 + +[sources] +unknown-git = "deny" +unknown-registry = "deny"