[feat] github actions support linux aarch64 platform

This commit is contained in:
dijunkun
2025-08-22 18:43:07 +08:00
parent 8a8f2cd5d7
commit 9912a88a13
5 changed files with 180 additions and 24 deletions

View File

@@ -1,14 +1,12 @@
#!/bin/bash
set -e
# 配置变量
APP_NAME="CrossDesk"
APP_VERSION="$1"
ARCHITECTURE="amd64"
MAINTAINER="Junkun Di <junkun.di@hotmail.com>"
DESCRIPTION="A simple cross-platform remote desktop client."
# 目录结构
DEB_DIR="$APP_NAME-$APP_VERSION"
DEBIAN_DIR="$DEB_DIR/DEBIAN"
BIN_DIR="$DEB_DIR/usr/local/bin"
@@ -16,25 +14,16 @@ CERT_SRC_DIR="$DEB_DIR/opt/$APP_NAME/certs" # 用于中转安装时分发
ICON_DIR="$DEB_DIR/usr/share/icons/hicolor/256x256/apps"
DESKTOP_DIR="$DEB_DIR/usr/share/applications"
# 清理已有的打包文件夹
rm -rf "$DEB_DIR"
# 创建目录结构
mkdir -p "$DEBIAN_DIR" "$BIN_DIR" "$CERT_SRC_DIR" "$ICON_DIR" "$DESKTOP_DIR"
# 复制二进制文件
cp build/linux/x86_64/release/crossdesk "$BIN_DIR"
# 复制证书文件(将来通过 postinst 拷贝到每个用户 XDG_CONFIG_HOME
cp certs/crossdesk.cn_root.crt "$CERT_SRC_DIR/crossdesk.cn_root.crt"
# 复制图标文件
cp icons/crossdesk.png "$ICON_DIR/crossdesk.png"
# 设置可执行权限
chmod +x "$BIN_DIR/crossdesk"
# 创建 control 文件
cat > "$DEBIAN_DIR/control" << EOF
Package: $APP_NAME
Version: $APP_VERSION
@@ -49,7 +38,6 @@ Priority: optional
Section: utils
EOF
# 创建 desktop 文件
cat > "$DESKTOP_DIR/$APP_NAME.desktop" << EOF
[Desktop Entry]
Version=$APP_VERSION
@@ -62,7 +50,6 @@ Type=Application
Categories=Utility;
EOF
# 创建卸载脚本 postrm
cat > "$DEBIAN_DIR/postrm" << EOF
#!/bin/bash
# post-removal script for $APP_NAME
@@ -81,7 +68,6 @@ EOF
chmod +x "$DEBIAN_DIR/postrm"
# 创建安装后脚本 postinst拷贝证书到每个用户 XDG_CONFIG_HOME
cat > "$DEBIAN_DIR/postinst" << 'EOF'
#!/bin/bash
set -e
@@ -89,7 +75,6 @@ set -e
CERT_SRC="/opt/CrossDesk/certs"
CERT_FILE="crossdesk.cn_root.crt"
# 处理每个普通用户的配置目录
for user_home in /home/*; do
[ -d "$user_home" ] || continue
username=$(basename "$user_home")
@@ -104,7 +89,6 @@ for user_home in /home/*; do
fi
done
# 处理 root 用户(可选)
if [ -d "/root" ]; then
config_dir="/root/.config/CrossDesk/certs"
mkdir -p "$config_dir"
@@ -117,13 +101,11 @@ EOF
chmod +x "$DEBIAN_DIR/postinst"
# 构建 .deb 包
dpkg-deb --build "$DEB_DIR"
OUTPUT_FILE="crossdesk-linux-x86_64-$APP_VERSION.deb"
mv "$DEB_DIR.deb" "$OUTPUT_FILE"
# 清理构建目录
rm -rf "$DEB_DIR"
echo "✅ Deb package for $APP_NAME created successfully."
echo "✅ Deb package for $APP_NAME created successfully."