mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-07-13 08:25:10 +08:00
✨ feat(release): 补齐 Linux arm64 构建与驱动发布链路
- 增加 dev/release 工作流 Linux arm64 构建矩阵与驱动分流 - 补齐在线更新资产识别及 driver release manifest/asset 校验 - 兼容 Windows 本地 bash/python 解析并补充对应测试
This commit is contained in:
26
.github/workflows/dev-build.yml
vendored
26
.github/workflows/dev-build.yml
vendored
@@ -73,6 +73,7 @@ jobs:
|
||||
drivers_windows_amd64: ${{ steps.detect.outputs.drivers_windows_amd64 }}
|
||||
drivers_windows_arm64: ${{ steps.detect.outputs.drivers_windows_arm64 }}
|
||||
drivers_linux_amd64: ${{ steps.detect.outputs.drivers_linux_amd64 }}
|
||||
drivers_linux_arm64: ${{ steps.detect.outputs.drivers_linux_arm64 }}
|
||||
has_changes: ${{ steps.detect.outputs.has_changes }}
|
||||
release_source: ${{ steps.detect.outputs.release_source }}
|
||||
compare_base: ${{ steps.detect.outputs.compare_base }}
|
||||
@@ -167,6 +168,7 @@ jobs:
|
||||
windows/amd64) echo "windows_amd64" ;;
|
||||
windows/arm64) echo "windows_arm64" ;;
|
||||
linux/amd64) echo "linux_amd64" ;;
|
||||
linux/arm64) echo "linux_arm64" ;;
|
||||
*)
|
||||
echo "unknown platform: $1" >&2
|
||||
return 1
|
||||
@@ -204,7 +206,7 @@ jobs:
|
||||
PLATFORM_DIFF_FAILED=false
|
||||
if [[ "$BASE_REF" != "all" && "$FORCE_GLOBAL_DRIVER_BUILDS" != "true" ]]; then
|
||||
REVISION_DRIVERS=""
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64; do
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64 linux/arm64; do
|
||||
PLATFORM_KEY="$(platform_output_key "$PLATFORM")"
|
||||
DIFF_ARGS=(bash ./tools/diff-driver-agent-revisions.sh --base "$BASE_REF" --head "$GITHUB_SHA" --platform "$PLATFORM")
|
||||
if [[ -n "$DRIVERS" ]]; then
|
||||
@@ -228,12 +230,12 @@ jobs:
|
||||
fi
|
||||
if [[ "$BASE_REF" == "all" || "$FORCE_GLOBAL_DRIVER_BUILDS" == "true" || "$PLATFORM_DIFF_FAILED" == "true" ]]; then
|
||||
PLATFORM_OUTPUTS=()
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64; do
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64 linux/arm64; do
|
||||
PLATFORM_KEY="$(platform_output_key "$PLATFORM")"
|
||||
PLATFORM_OUTPUTS+=("drivers_${PLATFORM_KEY}=${DRIVERS}")
|
||||
done
|
||||
elif [[ ${#PLATFORM_OUTPUTS[@]} -eq 0 ]]; then
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64; do
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64 linux/arm64; do
|
||||
PLATFORM_KEY="$(platform_output_key "$PLATFORM")"
|
||||
PLATFORM_OUTPUTS+=("drivers_${PLATFORM_KEY}=")
|
||||
done
|
||||
@@ -312,6 +314,15 @@ jobs:
|
||||
artifact_suffix: ""
|
||||
build_optional_agents: true
|
||||
linux_webkit: "4.0"
|
||||
- os: ubuntu-22.04-arm
|
||||
platform: linux/arm64
|
||||
os_name: Linux
|
||||
arch_name: Arm64
|
||||
build_name: gonavi-build-linux-arm64
|
||||
wails_tags: ""
|
||||
artifact_suffix: ""
|
||||
build_optional_agents: true
|
||||
linux_webkit: "4.0"
|
||||
- os: ubuntu-24.04
|
||||
platform: linux/amd64
|
||||
os_name: Linux
|
||||
@@ -397,6 +408,12 @@ jobs:
|
||||
|
||||
sudo apt-get install -y libfuse2 || sudo apt-get install -y libfuse2t64 || true
|
||||
|
||||
if [ "${{ matrix.arch_name }}" != "Amd64" ]; then
|
||||
echo "⚠️ Linux arm64 暂不生成 AppImage,仅产出 tar.gz"
|
||||
touch /tmp/skip-appimage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LINUXDEPLOY_URL="https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
|
||||
PLUGIN_URL="https://github.com/linuxdeploy/linuxdeploy-plugin-gtk/releases/download/continuous/linuxdeploy-plugin-gtk-x86_64.AppImage"
|
||||
|
||||
@@ -554,6 +571,9 @@ jobs:
|
||||
linux/amd64)
|
||||
DRIVERS='${{ needs.driver_agents.outputs.drivers_linux_amd64 }}'
|
||||
;;
|
||||
linux/arm64)
|
||||
DRIVERS='${{ needs.driver_agents.outputs.drivers_linux_arm64 }}'
|
||||
;;
|
||||
*)
|
||||
echo "unsupported platform: ${{ matrix.platform }}" >&2
|
||||
exit 1
|
||||
|
||||
17
.github/workflows/release.yml
vendored
17
.github/workflows/release.yml
vendored
@@ -177,7 +177,7 @@ jobs:
|
||||
DRIVERS="$(bash ./tools/detect-changed-driver-agents.sh --base "$BASE_REF" --head "$GITHUB_SHA")"
|
||||
if [[ "$BASE_REF" != "all" ]]; then
|
||||
REVISION_DRIVERS=""
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64; do
|
||||
for PLATFORM in darwin/amd64 darwin/arm64 windows/amd64 windows/arm64 linux/amd64 linux/arm64; do
|
||||
PLATFORM_DRIVERS="$(bash ./tools/diff-driver-agent-revisions.sh --base "$BASE_REF" --head "$GITHUB_SHA" --platform "$PLATFORM")" || {
|
||||
echo "⚠️ 平台 revision 差异对比失败(${PLATFORM}),保守回退为全量驱动重建"
|
||||
DRIVERS="$(bash ./tools/detect-changed-driver-agents.sh --base all --head "$GITHUB_SHA")"
|
||||
@@ -263,6 +263,15 @@ jobs:
|
||||
artifact_suffix: ""
|
||||
build_optional_agents: true
|
||||
linux_webkit: "4.0"
|
||||
- os: ubuntu-22.04-arm
|
||||
platform: linux/arm64
|
||||
os_name: Linux
|
||||
arch_name: Arm64
|
||||
build_name: gonavi-build-linux-arm64
|
||||
wails_tags: ""
|
||||
artifact_suffix: ""
|
||||
build_optional_agents: true
|
||||
linux_webkit: "4.0"
|
||||
# Debian 13 (trixie) 默认仓库已切到 WebKitGTK 4.1:单独提供 4.1 变体产物
|
||||
- os: ubuntu-24.04
|
||||
platform: linux/amd64
|
||||
@@ -354,6 +363,12 @@ jobs:
|
||||
# AppImage 运行/打包可能需要 FUSE2。不同发行版/版本包名不同,做兼容兜底。
|
||||
sudo apt-get install -y libfuse2 || sudo apt-get install -y libfuse2t64 || true
|
||||
|
||||
if [ "${{ matrix.arch_name }}" != "Amd64" ]; then
|
||||
echo "⚠️ Linux arm64 暂不生成 AppImage,仅产出 tar.gz"
|
||||
touch /tmp/skip-appimage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Download linuxdeploy tools for AppImage packaging
|
||||
LINUXDEPLOY_URL="https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
|
||||
PLUGIN_URL="https://github.com/linuxdeploy/linuxdeploy-plugin-gtk/releases/download/continuous/linuxdeploy-plugin-gtk-x86_64.AppImage"
|
||||
|
||||
Reference in New Issue
Block a user