fix(mini): 修复版本号被 MINIAPP_VERSION_OVERRIDE=1.0.1 永久冻结
Publish Mini Program Dev Version / publish (push) Failing after 9s
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:
@@ -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 }}
|
||||
|
||||
@@ -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
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lunar-mini",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.0",
|
||||
"description": "祈福小助手 - 万年历微信小程序",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
Reference in New Issue
Block a user