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
env:
MINIAPP_BUILD_NUMBER: ${{ gitea.run_number }}
MINIAPP_VERSION_OVERRIDE: ${{ vars.MINIAPP_VERSION_OVERRIDE }}
GITEA_SHA: ${{ gitea.sha }}
run: |
test -n "$MINIAPP_BUILD_NUMBER"
@@ -105,7 +104,6 @@ jobs:
MINIAPP_ROBOT: ${{ vars.MINIAPP_ROBOT }}
# Prefer the version resolved before build so UI label matches WeChat upload.
MINIAPP_BUILD_NUMBER: ${{ gitea.run_number }}
MINIAPP_VERSION_OVERRIDE: ${{ vars.MINIAPP_VERSION_OVERRIDE }}
WECHAT_CI_PRIVATE_KEY_PATH: ${{ runner.temp }}/wechat-ci.key
MINIAPP_UPLOAD_RESULT: ${{ gitea.workspace }}/mini/ci-artifacts/upload-result.json
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.
* Keeps package.json major; puts build into minor.patch with base 100.
* Examples (major=1): build 99 → 1.0.99, build 100 → 1.1.0, build 101 → 1.1.1
* Keeps package.json major.minor as the baseline; build number maps to patch.
* 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) {
throw new Error("MINIAPP_BUILD_NUMBER must be a positive integer.");
}
if (!Number.isInteger(major) || major < 0 || major > 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 % 100;
const patch = buildNumber % 1000;
return `${major}.${minor}.${patch}`;
}
@@ -70,12 +73,12 @@ function resolveVersion(projectPath, env = process.env) {
}
const packageVersion = readPackageVersion(projectPath);
const { major } = parseSemverParts(packageVersion);
const { major, minor } = parseSemverParts(packageVersion);
const buildRaw = (env.MINIAPP_BUILD_NUMBER || "").trim();
if (buildRaw) {
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.
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "lunar-mini",
"version": "1.0.0",
"version": "1.1.0",
"description": "祈福小助手 - 万年历微信小程序",
"private": true,
"scripts": {