diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a5d9959..b12e560 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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 < { - 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 }) }) }) diff --git a/electron/services/keyServiceMac.ts b/electron/services/keyServiceMac.ts index 647a28e..e7642a9 100644 --- a/electron/services/keyServiceMac.ts +++ b/electron/services/keyServiceMac.ts @@ -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', diff --git a/package-lock.json b/package-lock.json index d827aa2..1457270 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 6b32450..2a02226 100644 --- a/package.json +++ b/package.json @@ -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" } -} +} \ No newline at end of file diff --git a/resources/libwcdb_api.dylib b/resources/libwcdb_api.dylib index 07cb87f..3e4be59 100755 Binary files a/resources/libwcdb_api.dylib and b/resources/libwcdb_api.dylib differ diff --git a/resources/libwcdb_api.so b/resources/libwcdb_api.so new file mode 100755 index 0000000..7dc674d Binary files /dev/null and b/resources/libwcdb_api.so differ diff --git a/resources/wcdb_api.dll b/resources/wcdb_api.dll index ceb3606..6816800 100644 Binary files a/resources/wcdb_api.dll and b/resources/wcdb_api.dll differ diff --git a/resources/wcdb_api_arm64.dll b/resources/wcdb_api_arm64.dll new file mode 100644 index 0000000..16416fd Binary files /dev/null and b/resources/wcdb_api_arm64.dll differ diff --git a/resources/xkey_helper b/resources/xkey_helper index 1c9b951..d0c53a8 100755 Binary files a/resources/xkey_helper and b/resources/xkey_helper differ diff --git a/resources/xkey_helper_macos b/resources/xkey_helper_macos new file mode 100644 index 0000000..c44dae8 Binary files /dev/null and b/resources/xkey_helper_macos differ diff --git a/temp_assets.json b/temp_assets.json new file mode 100644 index 0000000..a30f1de Binary files /dev/null and b/temp_assets.json differ