mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-04-03 15:08:25 +00:00
Merge branch 'hicccc77:dev' into dev
This commit is contained in:
87
.github/workflows/release.yml
vendored
87
.github/workflows/release.yml
vendored
@@ -12,8 +12,27 @@ env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
||||
|
||||
jobs:
|
||||
prepare-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Mark release as pre-release (building)
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
TAG="$GITHUB_REF_NAME"
|
||||
REPO="$GITHUB_REPOSITORY"
|
||||
# Create or update the release as a pre-release with a placeholder note
|
||||
if gh release view "$TAG" --repo "$REPO" > /dev/null 2>&1; then
|
||||
gh release edit "$TAG" --repo "$REPO" --prerelease --notes $'## ⚠️ 正在自动构建中,请勿下载\n\n各平台安装包正在构建,完成后将自动更新本页面并正式发布。\n\n**请勿在此期间下载任何文件。**'
|
||||
else
|
||||
gh release create "$TAG" --repo "$REPO" --prerelease --title "$TAG" --notes $'## ⚠️ 正在自动构建中,请勿下载\n\n各平台安装包正在构建,完成后将自动更新本页面并正式发布。\n\n**请勿在此期间下载任何文件。**'
|
||||
fi
|
||||
|
||||
release-mac-arm64:
|
||||
runs-on: macos-14
|
||||
needs: prepare-release
|
||||
|
||||
steps:
|
||||
- name: Check out git repository
|
||||
@@ -42,15 +61,16 @@ jobs:
|
||||
npx tsc
|
||||
npx vite build
|
||||
|
||||
- name: Package and Publish macOS arm64 (unsigned DMG)
|
||||
- name: Package and Publish macOS arm64 (unsigned DMG + ZIP)
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: "false"
|
||||
run: |
|
||||
npx electron-builder --mac dmg --arm64 --publish always
|
||||
npx electron-builder --mac --arm64 --publish always
|
||||
|
||||
release-linux:
|
||||
runs-on: ubuntu-latest
|
||||
needs: prepare-release
|
||||
|
||||
steps:
|
||||
- name: Check out git repository
|
||||
@@ -87,6 +107,7 @@ jobs:
|
||||
|
||||
release:
|
||||
runs-on: windows-latest
|
||||
needs: prepare-release
|
||||
|
||||
steps:
|
||||
- name: Check out git repository
|
||||
@@ -118,11 +139,13 @@ jobs:
|
||||
- name: Package and Publish
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
shell: bash
|
||||
run: |
|
||||
npx electron-builder --win nsis --x64 --publish always '--config.artifactName=${productName}-${version}-x64-Setup.${ext}'
|
||||
npx electron-builder --win nsis --x64 --publish always "-c.artifactName=\${productName}-\${version}-x64-Setup.\${ext}"
|
||||
|
||||
release-windows-arm64:
|
||||
runs-on: windows-latest
|
||||
needs: prepare-release
|
||||
|
||||
steps:
|
||||
- name: Check out git repository
|
||||
@@ -154,8 +177,9 @@ jobs:
|
||||
- name: Package and Publish Windows arm64
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
shell: bash
|
||||
run: |
|
||||
npx electron-builder --win nsis --arm64 --publish always '--config.publish.channel=latest-arm64' '--config.artifactName=${productName}-${version}-arm64-Setup.${ext}'
|
||||
npx electron-builder --win nsis --arm64 --publish always -c.publish.channel=latest-arm64 "-c.artifactName=\${productName}-\${version}-arm64-Setup.\${ext}"
|
||||
|
||||
update-release-notes:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -166,6 +190,53 @@ jobs:
|
||||
- release-windows-arm64
|
||||
|
||||
steps:
|
||||
- name: Fix latest.yml to point to x64 installer
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
TAG="$GITHUB_REF_NAME"
|
||||
VERSION="${TAG#v}"
|
||||
REPO="$GITHUB_REPOSITORY"
|
||||
|
||||
# Find the x64 exe asset name
|
||||
ASSETS_JSON="$(gh release view "$TAG" --repo "$REPO" --json assets)"
|
||||
X64_ASSET="$(echo "$ASSETS_JSON" | jq -r '[.assets[].name | select(test("x64.*\\.exe$"))][0] // ""')"
|
||||
if [ -z "$X64_ASSET" ]; then
|
||||
X64_ASSET="$(echo "$ASSETS_JSON" | jq -r '[.assets[].name | select(test("\\.exe$")) | select(test("arm64") | not)][0] // ""')"
|
||||
fi
|
||||
|
||||
if [ -z "$X64_ASSET" ]; then
|
||||
echo "ERROR: Could not find x64 exe asset"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Downloading x64 installer: $X64_ASSET"
|
||||
gh release download "$TAG" --repo "$REPO" --pattern "$X64_ASSET" --dir /tmp/weflow-x64
|
||||
|
||||
SHA512_B64="$(sha512sum "/tmp/weflow-x64/$X64_ASSET" | awk '{print $1}' | xxd -r -p | base64 -w 0)"
|
||||
SIZE="$(stat -c%s "/tmp/weflow-x64/$X64_ASSET")"
|
||||
RELEASE_DATE="$(gh release view "$TAG" --repo "$REPO" --json publishedAt -q .publishedAt)"
|
||||
|
||||
cat > /tmp/latest.yml <<YMLEOF
|
||||
version: $VERSION
|
||||
files:
|
||||
- url: $X64_ASSET
|
||||
sha512: $SHA512_B64
|
||||
size: $SIZE
|
||||
path: $X64_ASSET
|
||||
sha512: $SHA512_B64
|
||||
releaseDate: '$RELEASE_DATE'
|
||||
YMLEOF
|
||||
|
||||
# Strip leading spaces (heredoc indentation)
|
||||
sed -i 's/^ //' /tmp/latest.yml
|
||||
cat /tmp/latest.yml
|
||||
|
||||
gh release upload "$TAG" --repo "$REPO" /tmp/latest.yml --clobber
|
||||
echo "latest.yml updated successfully to point to $X64_ASSET"
|
||||
|
||||
- name: Generate release notes with platform download links
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -230,3 +301,11 @@ jobs:
|
||||
EOF
|
||||
|
||||
gh release edit "$TAG" --repo "$REPO" --notes-file release_notes.md
|
||||
|
||||
- name: Mark release as published (no longer pre-release)
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
gh release edit "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --latest --draft=false --prerelease=false
|
||||
|
||||
@@ -1300,7 +1300,7 @@ function registerIpcHandlers() {
|
||||
try {
|
||||
console.log('[Update] 开始下载更新...')
|
||||
await autoUpdater.downloadUpdate()
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
console.error('[Update] 下载更新失败:', error)
|
||||
// 失败时清理状态和监听器
|
||||
isDownloadInProgress = false
|
||||
@@ -1312,7 +1312,10 @@ function registerIpcHandlers() {
|
||||
autoUpdater.removeListener('update-downloaded', downloadedHandler)
|
||||
downloadedHandler = null
|
||||
}
|
||||
throw error
|
||||
|
||||
// 统一错误提示格式,避免出现 [object Object] 的 JSON 字符串
|
||||
const errorMessage = error.message || (typeof error === 'string' ? error : JSON.stringify(error))
|
||||
throw new Error(errorMessage)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -2636,19 +2639,19 @@ function registerIpcHandlers() {
|
||||
|
||||
// 密钥获取
|
||||
ipcMain.handle('key:autoGetDbKey', async (event) => {
|
||||
return keyService.autoGetDbKey(180_000, (message, level) => {
|
||||
return keyService.autoGetDbKey(180_000, (message: string, level: number) => {
|
||||
event.sender.send('key:dbKeyStatus', { message, level })
|
||||
})
|
||||
})
|
||||
|
||||
ipcMain.handle('key:autoGetImageKey', async (event, manualDir?: string, wxid?: string) => {
|
||||
return keyService.autoGetImageKey(manualDir, (message) => {
|
||||
return keyService.autoGetImageKey(manualDir, (message: string) => {
|
||||
event.sender.send('key:imageKeyStatus', { message })
|
||||
}, wxid)
|
||||
})
|
||||
|
||||
ipcMain.handle('key:scanImageKeyFromMemory', async (event, userDir: string) => {
|
||||
return keyService.autoGetImageKeyByMemoryScan(userDir, (message) => {
|
||||
return keyService.autoGetImageKeyByMemoryScan(userDir, (message: string) => {
|
||||
event.sender.send('key:imageKeyStatus', { message })
|
||||
})
|
||||
})
|
||||
|
||||
@@ -389,7 +389,7 @@ export class KeyServiceMac {
|
||||
`set timeoutSec to ${timeoutSec}`,
|
||||
'try',
|
||||
'with timeout of timeoutSec seconds',
|
||||
'set outText to do shell script cmd with administrator privileges',
|
||||
'set outText to do shell script (cmd & " 2>&1") with administrator privileges',
|
||||
'end timeout',
|
||||
'return "WF_OK::" & outText',
|
||||
'on error errMsg number errNum partial result pr',
|
||||
|
||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "weflow",
|
||||
"version": "2.1.0",
|
||||
"version": "4.2.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "weflow",
|
||||
"version": "2.1.0",
|
||||
"version": "4.2.0",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"echarts": "^5.5.1",
|
||||
@@ -11062,4 +11062,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "weflow",
|
||||
"version": "2.1.0",
|
||||
"version": "4.2.0",
|
||||
"description": "WeFlow",
|
||||
"main": "dist-electron/main.js",
|
||||
"author": {
|
||||
@@ -178,4 +178,4 @@
|
||||
],
|
||||
"icon": "resources/icon.icns"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
BIN
resources/libwcdb_api.so
Executable file
BIN
resources/libwcdb_api.so
Executable file
Binary file not shown.
Binary file not shown.
BIN
resources/wcdb_api_arm64.dll
Normal file
BIN
resources/wcdb_api_arm64.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/xkey_helper_macos
Normal file
BIN
resources/xkey_helper_macos
Normal file
Binary file not shown.
BIN
temp_assets.json
Normal file
BIN
temp_assets.json
Normal file
Binary file not shown.
Reference in New Issue
Block a user