diff --git a/.github/workflows/dev-build.yml b/.github/workflows/dev-build.yml index 942fba4a..0a8a1d56 100644 --- a/.github/workflows/dev-build.yml +++ b/.github/workflows/dev-build.yml @@ -1071,6 +1071,9 @@ jobs: FILES=() while IFS= read -r file; do if [ -n "$file" ]; then + case "$file" in + SHA256SUMS|latest.json|latest-dev.json) continue ;; + esac FILES+=("$file") fi done < <(find . -maxdepth 1 -type f ! -name SHA256SUMS -exec basename {} \; | sort) @@ -1105,6 +1108,24 @@ jobs: DEV_VERSION="dev-${SHORT_SHA}" echo "version=${DEV_VERSION}" >> "$GITHUB_OUTPUT" + # 静态更新清单:dev 通道读 + # https://github.com/Syngnat/GoNavi/releases/download/dev-latest/latest-dev.json + - name: Generate static update manifest (latest-dev.json) + shell: bash + run: | + set -euo pipefail + DEV_VERSION="${{ steps.version.outputs.version }}" + python3 tools/generate-update-latest-manifest.py \ + --assets-dir release-assets \ + --version "$DEV_VERSION" \ + --tag dev-latest \ + --channel dev \ + --name "Dev Build (${DEV_VERSION})" \ + --output release-assets/latest-dev.json + test -s release-assets/latest-dev.json + echo "📄 latest-dev.json ready:" + head -n 40 release-assets/latest-dev.json + - name: Format Build Time id: build_time shell: bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6405f4fa..4cb837e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1071,6 +1071,9 @@ jobs: FILES=() while IFS= read -r file; do if [ -n "$file" ]; then + case "$file" in + SHA256SUMS|latest.json|latest-dev.json) continue ;; + esac FILES+=("$file") fi done < <(find . -maxdepth 1 -type f ! -name SHA256SUMS -exec basename {} \; | sort) diff --git a/build-release.sh b/build-release.sh index e1e44f6e..362847e5 100755 --- a/build-release.sh +++ b/build-release.sh @@ -376,14 +376,19 @@ else echo -e "${YELLOW} ⚠️ 未找到 sha256sum/shasum,跳过校验文件生成。${NC}" fi -echo -e "${GREEN}📄 生成静态更新清单 latest.json...${NC}" +echo -e "${GREEN}📄 生成静态更新清单...${NC}" if command -v python3 &> /dev/null; then - TAG_FOR_MANIFEST="v${VERSION#v}" - CHANNEL_FOR_MANIFEST="latest" - OUT_MANIFEST="$DIST_DIR/latest.json" + # 正式版:latest.json;dev/test 版本:latest-dev.json(对应客户端 dev 通道) case "$VERSION" in - *dev*|*test*|*-*) - # 本地/测试版本默认打 latest.json,发正式版时由 CI 使用 git tag + dev-*|*-dev*|*dev*|*test*) + TAG_FOR_MANIFEST="dev-latest" + CHANNEL_FOR_MANIFEST="dev" + OUT_MANIFEST="$DIST_DIR/latest-dev.json" + ;; + *) + TAG_FOR_MANIFEST="v${VERSION#v}" + CHANNEL_FOR_MANIFEST="latest" + OUT_MANIFEST="$DIST_DIR/latest.json" ;; esac if python3 tools/generate-update-latest-manifest.py \ @@ -392,12 +397,12 @@ if command -v python3 &> /dev/null; then --tag "$TAG_FOR_MANIFEST" \ --channel "$CHANNEL_FOR_MANIFEST" \ --output "$OUT_MANIFEST"; then - echo -e "${GREEN} ✅ 已生成 $OUT_MANIFEST${NC}" + echo -e "${GREEN} ✅ 已生成 $OUT_MANIFEST (channel=${CHANNEL_FOR_MANIFEST})${NC}" else - echo -e "${YELLOW} ⚠️ 生成 latest.json 失败(不影响本地产物,正式发版由 CI 生成)${NC}" + echo -e "${YELLOW} ⚠️ 生成更新清单失败(不影响本地产物,正式/dev 发版由 CI 生成)${NC}" fi else - echo -e "${YELLOW} ⚠️ 未找到 python3,跳过 latest.json${NC}" + echo -e "${YELLOW} ⚠️ 未找到 python3,跳过更新清单${NC}" fi echo ""