feat(release): 补齐 Linux arm64 构建与驱动发布链路

- 增加 dev/release 工作流 Linux arm64 构建矩阵与驱动分流
- 补齐在线更新资产识别及 driver release manifest/asset 校验
- 兼容 Windows 本地 bash/python 解析并补充对应测试
This commit is contained in:
Syngnat
2026-07-04 10:15:13 +08:00
parent b388b08226
commit d7e15f5eb0
12 changed files with 228 additions and 20 deletions

View File

@@ -566,6 +566,9 @@ func expectedAssetNameForExecutable(goos, goarch, version, executablePath string
if goarch == "amd64" {
return fmt.Sprintf("GoNavi-%s-Linux-Amd64%s.tar.gz", version, resolveLinuxReleaseArtifactSuffix(executablePath)), nil
}
if goarch == "arm64" {
return fmt.Sprintf("GoNavi-%s-Linux-Arm64%s.tar.gz", version, resolveLinuxReleaseArtifactSuffix(executablePath)), nil
}
}
return "", localizedUpdateError{
key: "app.update.backend.error.online_update_unsupported",

View File

@@ -190,6 +190,23 @@ func TestExpectedAssetNameForExecutableUsesLinuxWebKit41Suffix(t *testing.T) {
}
}
func TestExpectedAssetNameForExecutableSupportsLinuxArm64(t *testing.T) {
assetName, err := expectedAssetNameForExecutable(
"linux",
"arm64",
"v0.6.5",
"/opt/GoNavi/gonavi-build-linux-arm64",
)
if err != nil {
t.Fatalf("expectedAssetNameForExecutable returned error: %v", err)
}
want := "GoNavi-0.6.5-Linux-Arm64.tar.gz"
if assetName != want {
t.Fatalf("unexpected linux arm64 asset name: got %q want %q", assetName, want)
}
}
func TestBuildLinuxScriptPrefersTargetExecutableBasename(t *testing.T) {
script := buildLinuxScript(
"/tmp/GoNavi-0.6.5-Linux-Amd64-WebKit41.tar.gz",