mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-07 04:12:48 +08:00
125 lines
3.4 KiB
YAML
125 lines
3.4 KiB
YAML
name: Release
|
||
|
||
on:
|
||
push:
|
||
tags:
|
||
- 'v*'
|
||
|
||
permissions:
|
||
contents: write
|
||
|
||
jobs:
|
||
build-and-release:
|
||
name: Build ${{ matrix.platform }}
|
||
runs-on: ${{ matrix.os }}
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
include:
|
||
- os: macos-latest
|
||
platform: darwin/amd64
|
||
artifact_name: GoNavi-mac-amd64
|
||
- os: macos-latest
|
||
platform: darwin/arm64
|
||
artifact_name: GoNavi-mac-arm64
|
||
- os: windows-latest
|
||
platform: windows/amd64
|
||
artifact_name: GoNavi-windows-amd64
|
||
|
||
steps:
|
||
- name: Checkout code
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Setup Go
|
||
uses: actions/setup-go@v5
|
||
with:
|
||
go-version: '1.24'
|
||
check-latest: true
|
||
|
||
- name: Setup Node
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: '20'
|
||
|
||
- name: Install Wails
|
||
run: go install -v github.com/wailsapp/wails/v2/cmd/wails@latest
|
||
|
||
- name: Build
|
||
shell: bash
|
||
run: |
|
||
wails build -platform ${{ matrix.platform }} -clean -o ${{ matrix.artifact_name }}
|
||
|
||
- name: Package macOS Application
|
||
if: contains(matrix.platform, 'darwin')
|
||
run: |
|
||
# Install create-dmg
|
||
brew install create-dmg
|
||
|
||
cd build/bin
|
||
echo "📂 列出 build/bin 目录内容:"
|
||
ls -F
|
||
|
||
# Find .app bundle
|
||
APP_PATH=$(find . -maxdepth 1 -name "*.app" | head -n 1)
|
||
|
||
if [ -z "$APP_PATH" ]; then
|
||
echo "❌ 未找到 .app 应用包!"
|
||
exit 1
|
||
fi
|
||
|
||
# Get pure name (e.g. GoNavi.app)
|
||
APP_NAME=$(basename "$APP_PATH")
|
||
|
||
DMG_NAME="${{ matrix.artifact_name }}.dmg"
|
||
|
||
echo "📦 正在生成 DMG: $DMG_NAME (源应用: $APP_NAME)..."
|
||
|
||
# Create DMG
|
||
create-dmg \
|
||
--volname "GoNavi Installer" \
|
||
--window-pos 200 120 \
|
||
--window-size 800 400 \
|
||
--icon-size 100 \
|
||
--icon "$APP_NAME" 200 190 \
|
||
--hide-extension "$APP_NAME" \
|
||
--app-drop-link 600 185 \
|
||
"$DMG_NAME" \
|
||
"$APP_NAME"
|
||
|
||
# Move DMG to root for upload
|
||
mv "$DMG_NAME" "../../$DMG_NAME"
|
||
|
||
- name: Package Windows Executable
|
||
if: contains(matrix.platform, 'windows')
|
||
shell: bash
|
||
run: |
|
||
cd build/bin
|
||
echo "📂 列出 build/bin 目录内容:"
|
||
ls -F
|
||
|
||
TARGET="${{ matrix.artifact_name }}"
|
||
|
||
if [ -f "$TARGET.exe" ]; then
|
||
echo "✅ 找到 $TARGET.exe"
|
||
FINAL_EXE="$TARGET.exe"
|
||
elif [ -f "$TARGET" ]; then
|
||
echo "⚠️ 找到无后缀文件 $TARGET,正在添加 .exe 后缀..."
|
||
mv "$TARGET" "$TARGET.exe"
|
||
FINAL_EXE="$TARGET.exe"
|
||
else
|
||
echo "❌ 未找到构建产物 '$TARGET'!"
|
||
exit 1
|
||
fi
|
||
|
||
echo "📦 正在移动 $FINAL_EXE 到根目录..."
|
||
mv "$FINAL_EXE" "../../${{ matrix.artifact_name }}.exe"
|
||
|
||
- name: Upload Release Asset
|
||
uses: softprops/action-gh-release@v2
|
||
if: startsWith(github.ref, 'refs/tags/')
|
||
with:
|
||
files: |
|
||
${{ matrix.artifact_name }}.dmg
|
||
${{ matrix.artifact_name }}.exe
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |