diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index adc71d9..4c0ea4c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -74,19 +74,19 @@ jobs: - name: 整理文件并打包 zip run: | mkdir -p release - # 为每个平台二进制文件打包成 zip - find dist/ -type f | while read f; do - name=$(basename "$f") - # 根据文件名确定平台标识 - case "$name" in - *windows*) platform=$(echo "$name" | sed 's/\.[^.]*$//') ;; - *linux*) platform="$name" ;; - *macos*) platform="$name" ;; - *) platform="$name" ;; - esac + # download-artifact@v4 将每个 artifact 放在 dist// 子目录下 + # 遍历子目录,用目录名作为平台标识(即 matrix.asset_name) + for artifact_dir in dist/*/; do + platform=$(basename "$artifact_dir") + # 找到该目录下的二进制文件(只有一个) + binary=$(find "$artifact_dir" -maxdepth 1 -type f | head -n1) + if [ -z "$binary" ]; then + echo "警告:$artifact_dir 下没有找到文件,跳过" + continue + fi tmpdir="tmp_${platform}" mkdir -p "$tmpdir" - cp "$f" "$tmpdir/" + cp "$binary" "$tmpdir/" cp README.md "$tmpdir/README.md" cp .env.example "$tmpdir/.env.example" [ -f LICENSE ] && cp LICENSE "$tmpdir/LICENSE" || true