fix(mini): 修复版本号被 MINIAPP_VERSION_OVERRIDE=1.0.1 永久冻结
Publish Mini Program Dev Version / publish (push) Failing after 9s

- 删除冻结版本变量及工作流对它的引用(遗留的临时锁定变量)
- 版本编码改为保留 package.json 的 major.minor 基线,构建编号映射 patch(单调递增)
- 基线版本提升为 1.1.0,下次上传即为 1.1.4x(此前反复上传 1.0.1)
This commit is contained in:
gouki
2026-08-09 18:36:19 +00:00
parent fdc11bf529
commit 320231808b
3 changed files with 11 additions and 10 deletions
-2
View File
@@ -61,7 +61,6 @@ jobs:
working-directory: mini working-directory: mini
env: env:
MINIAPP_BUILD_NUMBER: ${{ gitea.run_number }} MINIAPP_BUILD_NUMBER: ${{ gitea.run_number }}
MINIAPP_VERSION_OVERRIDE: ${{ vars.MINIAPP_VERSION_OVERRIDE }}
GITEA_SHA: ${{ gitea.sha }} GITEA_SHA: ${{ gitea.sha }}
run: | run: |
test -n "$MINIAPP_BUILD_NUMBER" test -n "$MINIAPP_BUILD_NUMBER"
@@ -105,7 +104,6 @@ jobs:
MINIAPP_ROBOT: ${{ vars.MINIAPP_ROBOT }} MINIAPP_ROBOT: ${{ vars.MINIAPP_ROBOT }}
# Prefer the version resolved before build so UI label matches WeChat upload. # Prefer the version resolved before build so UI label matches WeChat upload.
MINIAPP_BUILD_NUMBER: ${{ gitea.run_number }} MINIAPP_BUILD_NUMBER: ${{ gitea.run_number }}
MINIAPP_VERSION_OVERRIDE: ${{ vars.MINIAPP_VERSION_OVERRIDE }}
WECHAT_CI_PRIVATE_KEY_PATH: ${{ runner.temp }}/wechat-ci.key WECHAT_CI_PRIVATE_KEY_PATH: ${{ runner.temp }}/wechat-ci.key
MINIAPP_UPLOAD_RESULT: ${{ gitea.workspace }}/mini/ci-artifacts/upload-result.json MINIAPP_UPLOAD_RESULT: ${{ gitea.workspace }}/mini/ci-artifacts/upload-result.json
MINIAPP_VERSION_LABEL: ${{ gitea.sha }} MINIAPP_VERSION_LABEL: ${{ gitea.sha }}
+10 -7
View File
@@ -45,19 +45,22 @@ function parseSemverParts(version) {
/** /**
* Encode a monotonic CI build number into WeChat x.y.z. * Encode a monotonic CI build number into WeChat x.y.z.
* Keeps package.json major; puts build into minor.patch with base 100. * Keeps package.json major.minor as the baseline; build number maps to patch.
* Examples (major=1): build 99 → 1.0.99, build 100 → 1.1.0, build 101 → 1.1.1 * Examples (base 1.1.0): build 45 → 1.1.45, build 999 → 1.1.999
* (patch wraps every 1000 builds; bump package.json minor before that)
*/ */
function versionFromBuildNumber(major, buildNumber) { function versionFromBuildNumber(major, minor, buildNumber) {
if (!Number.isInteger(buildNumber) || buildNumber < 1) { if (!Number.isInteger(buildNumber) || buildNumber < 1) {
throw new Error("MINIAPP_BUILD_NUMBER must be a positive integer."); throw new Error("MINIAPP_BUILD_NUMBER must be a positive integer.");
} }
if (!Number.isInteger(major) || major < 0 || major > 999) { if (!Number.isInteger(major) || major < 0 || major > 999) {
throw new Error("package.json major version must be an integer 0-999."); throw new Error("package.json major version must be an integer 0-999.");
} }
if (!Number.isInteger(minor) || minor < 0 || minor > 999) {
throw new Error("package.json minor version must be an integer 0-999.");
}
const minor = Math.floor(buildNumber / 100) % 1000; const patch = buildNumber % 1000;
const patch = buildNumber % 100;
return `${major}.${minor}.${patch}`; return `${major}.${minor}.${patch}`;
} }
@@ -70,12 +73,12 @@ function resolveVersion(projectPath, env = process.env) {
} }
const packageVersion = readPackageVersion(projectPath); const packageVersion = readPackageVersion(projectPath);
const { major } = parseSemverParts(packageVersion); const { major, minor } = parseSemverParts(packageVersion);
const buildRaw = (env.MINIAPP_BUILD_NUMBER || "").trim(); const buildRaw = (env.MINIAPP_BUILD_NUMBER || "").trim();
if (buildRaw) { if (buildRaw) {
const buildNumber = Number.parseInt(buildRaw, 10); const buildNumber = Number.parseInt(buildRaw, 10);
return versionFromBuildNumber(major, buildNumber); return versionFromBuildNumber(major, minor, buildNumber);
} }
// Legacy fixed override — prefer not to use; keeps version stuck across uploads. // Legacy fixed override — prefer not to use; keeps version stuck across uploads.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "lunar-mini", "name": "lunar-mini",
"version": "1.0.0", "version": "1.1.0",
"description": "祈福小助手 - 万年历微信小程序", "description": "祈福小助手 - 万年历微信小程序",
"private": true, "private": true,
"scripts": { "scripts": {