From 76ad4ec8fbc0999a7ccbf7ca0df5a29e06a5ee85 Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 15 Jun 2026 11:47:54 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E4=BF=AE=E6=AD=A3=20Tailwind=20CLI=20?= =?UTF-8?q?=E5=8C=85=E5=90=8D=E5=B9=B6=E6=94=B6=E6=95=9B=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E7=9A=84=E7=8E=AF=E5=A2=83=E5=87=86=E5=A4=87=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tailwind v4 将 CLI 拆为独立包 @tailwindcss/cli,核心包 tailwindcss 不再注册 bin,导致 npx tailwindcss 报 "could not determine executable to run"。CI 改为安装 @tailwindcss/cli。 同时将 check 与 build 两个 job 重复的 checkout、镜像、Rust/Node/dx/ tailwind 安装步骤抽到 .gitea/actions/setup 复合 action,顶层 env 统一管理 Rust 镜像配置。AGENTS.md 同步说明 v4 拆包这一坑。 --- .gitea/actions/setup/action.yml | 49 ++++++++++++++++++++++ .gitea/workflows/ci.yaml | 73 +-------------------------------- AGENTS.md | 2 +- 3 files changed, 52 insertions(+), 72 deletions(-) create mode 100644 .gitea/actions/setup/action.yml diff --git a/.gitea/actions/setup/action.yml b/.gitea/actions/setup/action.yml new file mode 100644 index 0000000..6177467 --- /dev/null +++ b/.gitea/actions/setup/action.yml @@ -0,0 +1,49 @@ +name: Setup toolchain +description: Checkout + configure Cargo mirror + install Rust, Node, wasm target, Dioxus CLI and Tailwind CSS CLI + +runs: + using: composite + steps: + - name: Checkout + shell: bash + run: | + git init + git remote add origin https://git.rua.plus/${{ github.repository }}.git + git fetch --depth 1 origin ${{ github.sha }} + git checkout ${{ github.sha }} + + - name: Configure Cargo mirror + shell: bash + run: | + mkdir -p "$HOME/.cargo" + printf '%s\n' '[source.crates-io]' "replace-with = 'rsproxy'" '' "[source.rsproxy]" 'registry = "sparse+https://rsproxy.cn/index/"' > "$HOME/.cargo/config.toml" + + # Rust mirror env (RUSTUP_UPDATE_ROOT / RUSTUP_DIST_SERVER) is inherited + # from the top-level workflow env. + - name: Install Rust toolchain + shell: bash + run: | + for i in 1 2 3; do + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable && break + echo "rustup install attempt $i failed, retrying..." + sleep 15 + done + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + + - name: Install Node.js + shell: bash + run: | + apt-get update + apt-get install -y nodejs npm + + - name: Install Rust target + shell: bash + run: rustup target add wasm32-unknown-unknown + + - name: Install Dioxus CLI + shell: bash + run: cargo install dioxus-cli --locked + + - name: Install Tailwind CSS CLI + shell: bash + run: npm install -g @tailwindcss/cli diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 27ffaa2..5fdf81a 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -14,40 +14,7 @@ jobs: check: runs-on: ubuntu-latest steps: - - name: Checkout - run: | - git init - git remote add origin https://git.rua.plus/${{ github.repository }}.git - git fetch --depth 1 origin ${{ github.sha }} - git checkout ${{ github.sha }} - - - name: Configure Cargo mirror - run: | - mkdir -p "$HOME/.cargo" - printf '%s\n' '[source.crates-io]' "replace-with = 'rsproxy'" '' "[source.rsproxy]" 'registry = "sparse+https://rsproxy.cn/index/"' > "$HOME/.cargo/config.toml" - - - name: Install Rust toolchain - run: | - for i in 1 2 3; do - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable && break - echo "rustup install attempt $i failed, retrying..." - sleep 15 - done - echo "$HOME/.cargo/bin" >> $GITHUB_PATH - - - name: Install Node.js - run: | - apt-get update - apt-get install -y nodejs npm - - - name: Install Rust target - run: rustup target add wasm32-unknown-unknown - - - name: Install Dioxus CLI - run: cargo install dioxus-cli --locked - - - name: Install Tailwind CSS CLI - run: npm install -g tailwindcss + - uses: ./.gitea/actions/setup - name: Check formatting run: cargo fmt -- --check @@ -64,44 +31,8 @@ jobs: build: runs-on: ubuntu-latest needs: check - env: - RUSTUP_UPDATE_ROOT: https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup - RUSTUP_DIST_SERVER: https://mirrors.tuna.tsinghua.edu.cn/rustup steps: - - name: Checkout - run: | - git init - git remote add origin https://git.rua.plus/${{ github.repository }}.git - git fetch --depth 1 origin ${{ github.sha }} - git checkout ${{ github.sha }} - - - name: Configure Cargo mirror - run: | - mkdir -p "$HOME/.cargo" - printf '%s\n' '[source.crates-io]' "replace-with = 'rsproxy'" '' "[source.rsproxy]" 'registry = "sparse+https://rsproxy.cn/index/"' > "$HOME/.cargo/config.toml" - - - name: Install Rust toolchain - run: | - for i in 1 2 3; do - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable && break - echo "rustup install attempt $i failed, retrying..." - sleep 15 - done - echo "$HOME/.cargo/bin" >> $GITHUB_PATH - - - name: Install Node.js - run: | - apt-get update - apt-get install -y nodejs npm - - - name: Install Rust target - run: rustup target add wasm32-unknown-unknown - - - name: Install Dioxus CLI - run: cargo install dioxus-cli --locked - - - name: Install Tailwind CSS CLI - run: npm install -g tailwindcss + - uses: ./.gitea/actions/setup - name: Build release run: make build diff --git a/AGENTS.md b/AGENTS.md index 001eea0..d0ff3bb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -18,7 +18,7 @@ make clean # cargo clean + rm public/style.css - Rust 1.95+ with `wasm32-unknown-unknown` target - `dx` CLI (`cargo install dioxus-cli`) -- `tailwindcss` CLI v4 (standalone binary) +- `tailwindcss` CLI v4 — install via `npm install -g @tailwindcss/cli` (v4 splits the CLI into its own package; the `tailwindcss` core package has no `bin`), or use the standalone binary - PostgreSQL running locally ## Environment