mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-07-21 21:01:55 +08:00
✨ feat(update): dev 通道同步生成 latest-dev.json 静态清单
- dev-build 发版流程上传 latest-dev.json 到 dev-latest Release - 客户端 dev 通道优先读取 releases/download/dev-latest/latest-dev.json - build-release 本地打包按版本自动选择 latest / latest-dev - SHA256SUMS 生成时跳过清单文件本身
This commit is contained in:
21
.github/workflows/dev-build.yml
vendored
21
.github/workflows/dev-build.yml
vendored
@@ -1071,6 +1071,9 @@ jobs:
|
|||||||
FILES=()
|
FILES=()
|
||||||
while IFS= read -r file; do
|
while IFS= read -r file; do
|
||||||
if [ -n "$file" ]; then
|
if [ -n "$file" ]; then
|
||||||
|
case "$file" in
|
||||||
|
SHA256SUMS|latest.json|latest-dev.json) continue ;;
|
||||||
|
esac
|
||||||
FILES+=("$file")
|
FILES+=("$file")
|
||||||
fi
|
fi
|
||||||
done < <(find . -maxdepth 1 -type f ! -name SHA256SUMS -exec basename {} \; | sort)
|
done < <(find . -maxdepth 1 -type f ! -name SHA256SUMS -exec basename {} \; | sort)
|
||||||
@@ -1105,6 +1108,24 @@ jobs:
|
|||||||
DEV_VERSION="dev-${SHORT_SHA}"
|
DEV_VERSION="dev-${SHORT_SHA}"
|
||||||
echo "version=${DEV_VERSION}" >> "$GITHUB_OUTPUT"
|
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
|
- name: Format Build Time
|
||||||
id: build_time
|
id: build_time
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
3
.github/workflows/release.yml
vendored
3
.github/workflows/release.yml
vendored
@@ -1071,6 +1071,9 @@ jobs:
|
|||||||
FILES=()
|
FILES=()
|
||||||
while IFS= read -r file; do
|
while IFS= read -r file; do
|
||||||
if [ -n "$file" ]; then
|
if [ -n "$file" ]; then
|
||||||
|
case "$file" in
|
||||||
|
SHA256SUMS|latest.json|latest-dev.json) continue ;;
|
||||||
|
esac
|
||||||
FILES+=("$file")
|
FILES+=("$file")
|
||||||
fi
|
fi
|
||||||
done < <(find . -maxdepth 1 -type f ! -name SHA256SUMS -exec basename {} \; | sort)
|
done < <(find . -maxdepth 1 -type f ! -name SHA256SUMS -exec basename {} \; | sort)
|
||||||
|
|||||||
@@ -376,14 +376,19 @@ else
|
|||||||
echo -e "${YELLOW} ⚠️ 未找到 sha256sum/shasum,跳过校验文件生成。${NC}"
|
echo -e "${YELLOW} ⚠️ 未找到 sha256sum/shasum,跳过校验文件生成。${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${GREEN}📄 生成静态更新清单 latest.json...${NC}"
|
echo -e "${GREEN}📄 生成静态更新清单...${NC}"
|
||||||
if command -v python3 &> /dev/null; then
|
if command -v python3 &> /dev/null; then
|
||||||
TAG_FOR_MANIFEST="v${VERSION#v}"
|
# 正式版:latest.json;dev/test 版本:latest-dev.json(对应客户端 dev 通道)
|
||||||
CHANNEL_FOR_MANIFEST="latest"
|
|
||||||
OUT_MANIFEST="$DIST_DIR/latest.json"
|
|
||||||
case "$VERSION" in
|
case "$VERSION" in
|
||||||
*dev*|*test*|*-*)
|
dev-*|*-dev*|*dev*|*test*)
|
||||||
# 本地/测试版本默认打 latest.json,发正式版时由 CI 使用 git tag
|
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
|
esac
|
||||||
if python3 tools/generate-update-latest-manifest.py \
|
if python3 tools/generate-update-latest-manifest.py \
|
||||||
@@ -392,12 +397,12 @@ if command -v python3 &> /dev/null; then
|
|||||||
--tag "$TAG_FOR_MANIFEST" \
|
--tag "$TAG_FOR_MANIFEST" \
|
||||||
--channel "$CHANNEL_FOR_MANIFEST" \
|
--channel "$CHANNEL_FOR_MANIFEST" \
|
||||||
--output "$OUT_MANIFEST"; then
|
--output "$OUT_MANIFEST"; then
|
||||||
echo -e "${GREEN} ✅ 已生成 $OUT_MANIFEST${NC}"
|
echo -e "${GREEN} ✅ 已生成 $OUT_MANIFEST (channel=${CHANNEL_FOR_MANIFEST})${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${YELLOW} ⚠️ 生成 latest.json 失败(不影响本地产物,正式发版由 CI 生成)${NC}"
|
echo -e "${YELLOW} ⚠️ 生成更新清单失败(不影响本地产物,正式/dev 发版由 CI 生成)${NC}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${YELLOW} ⚠️ 未找到 python3,跳过 latest.json${NC}"
|
echo -e "${YELLOW} ⚠️ 未找到 python3,跳过更新清单${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user