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
|
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 }}
|
||||||
|
|||||||
@@ -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
@@ -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": {
|
||||||
|
|||||||
Reference in New Issue
Block a user