commit b265b7cb68a8dfaa15b9280ccfdeb06ac9629d13 Author: rm-dr <96270320+rm-dr@users.noreply.github.com> Date: Tue Dec 2 20:41:53 2025 -0800 Initial commit: tooling + CI diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f9c3c9c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,72 @@ +name: CI + +on: + pull_request: + workflow_dispatch: + push: + branches: + - main + +jobs: + typos: + name: "Check typos" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check typos + uses: crate-ci/typos@master + with: + config: ./typos.toml + + lychee: + name: "Check links" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check links + id: lychee + uses: lycheeverse/lychee-action@v1 + with: + args: --config ./lychee.toml . + fail: true + + clippy: + name: "Clippy" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: "Install Rust" + run: | + sudo apt update + DEBIAN_FRONTEND=noninteractive \ + sudo apt install --yes rustup + rustup default 1.91.0 + rustup component add clippy + + - name: Run clippy + run: cargo clippy --all-targets --all-features + + buildandtest: + name: "Build and test" + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: "Install Rust" + run: | + sudo apt update + DEBIAN_FRONTEND=noninteractive \ + sudo apt install --yes rustup + rustup default 1.91.0 + cargo install cargo-all-features + + - name: Build + run: cargo build-all-features -- --release + + - name: Test + run: cargo test-all-features -- --release + + - name: Publish + run: cargo publish --dry-run \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..20bf50e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/target +*.ignore +.lycheecache \ No newline at end of file diff --git a/lychee.toml b/lychee.toml new file mode 100644 index 0000000..9c27e41 --- /dev/null +++ b/lychee.toml @@ -0,0 +1,5 @@ +cache = true +max_cache_age = "2d" +verbose = "info" +glob_ignore_case = false +exclude = ['^http(s)?://localhost', '^file://'] diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000..218e203 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1 @@ +hard_tabs = true diff --git a/typos.toml b/typos.toml new file mode 100644 index 0000000..7b914af --- /dev/null +++ b/typos.toml @@ -0,0 +1,8 @@ +[default] +extend-ignore-re = [ + # Line block with # spellchecker: + "(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on", +] + +[files] +extend-exclude = []