Replace cargo installs with dotslash binaries, inline CI setup
Tools (grcov, just, zizmor) are now dotslash files in bin/ with pinned
versions. Only rustup components are cached. Removed composite action
since it was only used in one job.

Assisted-by: GLM-5 via pi
change yypwoouxkkxuwxwruuzlkwtzwntrkrqq
commit 11347a86f743411d213fdabcd81c64adad35a726
author Alpha Chen <alpha@kejadlen.dev>
date
parent xzwtvtwm
diff --git a/.gitea/actions/setup-rust/action.yml b/.gitea/actions/setup-rust/action.yml
deleted file mode 100644
index 58279f2..0000000
--- a/.gitea/actions/setup-rust/action.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Setup Rust
-description: Install rustup, add cargo to PATH, and restore cargo cache
-
-inputs:
-  cache-key-suffix:
-    description: Suffix for the cache key (bump to force bust)
-    required: false
-    default: v1
-
-runs:
-  using: composite
-  steps:
-    - run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
-      shell: bash
-    - run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
-      shell: bash
-    - uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4
-      with:
-        path: |
-          ~/.cargo/bin/
-          ~/.cargo/registry/index/
-          ~/.cargo/registry/cache/
-          ~/.cargo/git/db/
-          target/
-        # Bump suffix to force cache bust after upgrading installed tools.
-        key: cargo-${{ runner.os }}-${{ inputs.cache-key-suffix }}-${{ hashFiles('Cargo.lock') }}
-        restore-keys: cargo-${{ runner.os }}-${{ inputs.cache-key-suffix }}-
diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml
index 7ac1f4d..099c17c 100644
--- a/.gitea/workflows/ci.yml
+++ b/.gitea/workflows/ci.yml
@@ -14,10 +14,15 @@ jobs:
       - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
         with:
           persist-credentials: false
-      - uses: ./.gitea/actions/setup-rust
+      - run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+      - run: echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
+      - run: echo "$PWD/bin" >> "$GITHUB_PATH"
+      - uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4
+        with:
+          path: ~/.rustup/
+          # Bump suffix to force cache bust after upgrading rustup.
+          key: rustup-${{ runner.os }}-v1
       - run: rustup component add clippy rustfmt llvm-tools
-      - run: cargo install grcov
-      - run: cargo install just
       - run: cargo fmt --check
       - run: just clippy coverage
 
@@ -27,8 +32,7 @@ jobs:
       - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
         with:
           persist-credentials: false
-      - uses: ./.gitea/actions/setup-rust
+      - run: echo "$PWD/bin" >> "$GITHUB_PATH"
       # Can't use zizmorcore/zizmor-action because it doesn't support
       # auditing .gitea/workflows/ — it rejects them as invalid inputs.
-      - run: cargo install --locked zizmor
       - run: zizmor .gitea/workflows/* .github
diff --git a/bin/grcov b/bin/grcov
new file mode 100755
index 0000000..2b654ec
--- /dev/null
+++ b/bin/grcov
@@ -0,0 +1,43 @@
+#!/usr/bin/env dotslash
+
+{
+  "name": "grcov",
+  "platforms": {
+    "macos-aarch64": {
+      "size": 2643857,
+      "hash": "blake3",
+      "digest": "91e6ab40733b7ae756e56ec973f7d61f77aac9a47dc00f5d5f8b8106694f6646",
+      "format": "tar.bz2",
+      "path": "grcov",
+      "providers": [
+        {
+          "url": "https://github.com/marco-c/grcov/releases/download/v0.10.7/grcov-aarch64-apple-darwin.tar.bz2"
+        },
+        {
+          "type": "github-release",
+          "repo": "https://github.com/marco-c/grcov",
+          "tag": "v0.10.7",
+          "name": "grcov-aarch64-apple-darwin.tar.bz2"
+        }
+      ]
+    },
+    "linux-x86_64": {
+      "size": 2966094,
+      "hash": "blake3",
+      "digest": "7bc1ce3a29b790eefd3a5e7fa27122d72aea3eb7acccfd6eabcb522a3ae55466",
+      "format": "tar.bz2",
+      "path": "grcov",
+      "providers": [
+        {
+          "url": "https://github.com/marco-c/grcov/releases/download/v0.10.7/grcov-x86_64-unknown-linux-gnu.tar.bz2"
+        },
+        {
+          "type": "github-release",
+          "repo": "https://github.com/marco-c/grcov",
+          "tag": "v0.10.7",
+          "name": "grcov-x86_64-unknown-linux-gnu.tar.bz2"
+        }
+      ]
+    }
+  }
+}
diff --git a/bin/just b/bin/just
new file mode 100755
index 0000000..d88ebfd
--- /dev/null
+++ b/bin/just
@@ -0,0 +1,43 @@
+#!/usr/bin/env dotslash
+
+{
+  "name": "just",
+  "platforms": {
+    "macos-aarch64": {
+      "size": 1893409,
+      "hash": "blake3",
+      "digest": "5a1146a3bbd83f1c1c46b3f17ddce0cc0ede2d72aded73299bcf9ded1c0bef25",
+      "format": "tar.gz",
+      "path": "just",
+      "providers": [
+        {
+          "url": "https://github.com/casey/just/releases/download/1.50.0/just-1.50.0-aarch64-apple-darwin.tar.gz"
+        },
+        {
+          "type": "github-release",
+          "repo": "https://github.com/casey/just",
+          "tag": "1.50.0",
+          "name": "just-1.50.0-aarch64-apple-darwin.tar.gz"
+        }
+      ]
+    },
+    "linux-x86_64": {
+      "size": 2247333,
+      "hash": "blake3",
+      "digest": "1f8b5a214cdc9e11f3bfad738d9f2fe9d72b3f17bf2bb35e582ea9e2cb63e174",
+      "format": "tar.gz",
+      "path": "just",
+      "providers": [
+        {
+          "url": "https://github.com/casey/just/releases/download/1.50.0/just-1.50.0-x86_64-unknown-linux-musl.tar.gz"
+        },
+        {
+          "type": "github-release",
+          "repo": "https://github.com/casey/just",
+          "tag": "1.50.0",
+          "name": "just-1.50.0-x86_64-unknown-linux-musl.tar.gz"
+        }
+      ]
+    }
+  }
+}
diff --git a/bin/zizmor b/bin/zizmor
new file mode 100755
index 0000000..3d7ffb9
--- /dev/null
+++ b/bin/zizmor
@@ -0,0 +1,43 @@
+#!/usr/bin/env dotslash
+
+{
+  "name": "zizmor",
+  "platforms": {
+    "macos-aarch64": {
+      "size": 8313919,
+      "hash": "blake3",
+      "digest": "8dad38093c33652911433d9b3b6c01455bd785257ea38754da129497a4161bf4",
+      "format": "tar.gz",
+      "path": "zizmor",
+      "providers": [
+        {
+          "url": "https://github.com/zizmorcore/zizmor/releases/download/v1.24.1/zizmor-aarch64-apple-darwin.tar.gz"
+        },
+        {
+          "type": "github-release",
+          "repo": "https://github.com/zizmorcore/zizmor",
+          "tag": "v1.24.1",
+          "name": "zizmor-aarch64-apple-darwin.tar.gz"
+        }
+      ]
+    },
+    "linux-x86_64": {
+      "size": 8986317,
+      "hash": "blake3",
+      "digest": "c53be717c392bc73f241441004897f697a895ddfd20595d27df7cf3c15ea6b5c",
+      "format": "tar.gz",
+      "path": "zizmor",
+      "providers": [
+        {
+          "url": "https://github.com/zizmorcore/zizmor/releases/download/v1.24.1/zizmor-x86_64-unknown-linux-gnu.tar.gz"
+        },
+        {
+          "type": "github-release",
+          "repo": "https://github.com/zizmorcore/zizmor",
+          "tag": "v1.24.1",
+          "name": "zizmor-x86_64-unknown-linux-gnu.tar.gz"
+        }
+      ]
+    }
+  }
+}