ci: 修正 Tailwind CLI 包名并收敛重复的环境准备步骤
Some checks failed
CI / check (push) Failing after 2s
CI / build (push) Has been skipped

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 拆包这一坑。
This commit is contained in:
xfy 2026-06-15 11:47:54 +08:00
parent a2ccc3da1a
commit 76ad4ec8fb
3 changed files with 52 additions and 72 deletions

View File

@ -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

View File

@ -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

View File

@ -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