From 09bf4fa51c93e030a54ae090c45d4ce07b996f06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=90=E6=AE=87?= Date: Sat, 21 Dec 2024 20:13:44 +0800 Subject: [PATCH] 1.5.13 --- .github/workflows/build.yml | 212 +++++------------- changelog.md | 6 +- package.json | 2 +- scripts/updater.mjs | 10 +- src/main/resolve/autoUpdater.ts | 4 +- .../connections/connection-detail-modal.tsx | 4 +- .../components/settings/general-config.tsx | 15 ++ .../src/components/updater/updater-modal.tsx | 2 +- src/renderer/src/pages/settings.tsx | 2 +- src/shared/types.d.ts | 1 + 10 files changed, 90 insertions(+), 168 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 62c9e04a..7066fda2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,11 @@ name: Build +permissions: write-all on: + workflow_dispatch: + inputs: + version: + description: "Tag version to release" + required: false push: branches: - master @@ -10,171 +16,62 @@ on: - '.github/ISSUE_TEMPLATE/**' - '.github/workflows/issues.yml' -permissions: write-all - jobs: - windows: + build: strategy: fail-fast: false matrix: - arch: - - x64 - - ia32 - - arm64 - runs-on: windows-latest + os: [windows-latest, ubuntu-latest, macos-latest] + arch: [x64, arm64] + runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 + - name: Setup pnpm run: npm install -g pnpm - - name: Install Dependencies + + - name: Install Dependencies and Prepare env: npm_config_arch: ${{ matrix.arch }} npm_config_target_arch: ${{ matrix.arch }} run: | pnpm install - pnpm add @mihomo-party/sysproxy-win32-${{ matrix.arch }}-msvc + pnpm add @mihomo-party/sysproxy-${{ matrix.os == 'windows-latest' && 'win32' || matrix.os == 'ubuntu-latest' && 'linux' || 'darwin' }}-${{ matrix.arch }}${{ matrix.os == 'ubuntu-latest' && '-gnu' || matrix.os == 'windows-latest' && '-msvc' || '' }} pnpm prepare --${{ matrix.arch }} + - name: Build env: npm_config_arch: ${{ matrix.arch }} npm_config_target_arch: ${{ matrix.arch }} - run: pnpm build:win --${{ matrix.arch }} + run: | + chmod +x build/pkg-scripts/postinstall + pnpm build:${{ matrix.os == 'windows-latest' && 'win' || matrix.os == 'ubuntu-latest' && 'linux' || 'mac' }} --${{ matrix.arch }} + - name: Add Portable Flag + if: matrix.os == 'windows-latest' run: | New-Item -Path "PORTABLE" -ItemType File Get-ChildItem dist/*portable.7z | ForEach-Object { 7z a $_.FullName PORTABLE } - - name: Generate checksums - run: pnpm checksum setup.exe portable.7z - - name: Upload Artifacts - if: startsWith(github.ref, 'refs/heads/') - uses: actions/upload-artifact@v4 - with: - name: Windows ${{ matrix.arch }} - path: | - dist/*.sha256 - dist/*setup.exe - dist/*portable.7z - if-no-files-found: error - - name: Publish Release - if: startsWith(github.ref, 'refs/tags/v') - uses: softprops/action-gh-release@v2 - with: - files: | - dist/*.sha256 - dist/*setup.exe - dist/*portable.7z - body_path: changelog.md - token: ${{ secrets.GITHUB_TOKEN }} - linux: - strategy: - fail-fast: false - matrix: - arch: - - x64 - - arm64 - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup pnpm - run: npm install -g pnpm - - name: Install Dependencies - env: - npm_config_arch: ${{ matrix.arch }} - npm_config_target_arch: ${{ matrix.arch }} - run: | - pnpm install - pnpm add @mihomo-party/sysproxy-linux-${{ matrix.arch }}-gnu - sed -i "s/productName: Mihomo Party/productName: mihomo-party/" electron-builder.yml - pnpm prepare --${{ matrix.arch }} - - name: Build - env: - npm_config_arch: ${{ matrix.arch }} - npm_config_target_arch: ${{ matrix.arch }} - run: pnpm build:linux --${{ matrix.arch }} - - name: Generate checksums - run: pnpm checksum .deb .rpm - - name: Upload Artifacts - if: startsWith(github.ref, 'refs/heads/') - uses: actions/upload-artifact@v4 - with: - name: Linux ${{ matrix.arch }} - path: | - dist/*.sha256 - dist/*.deb - dist/*.rpm - if-no-files-found: error - - name: Publish Release - if: startsWith(github.ref, 'refs/tags/v') - uses: softprops/action-gh-release@v2 - with: - files: | - dist/*.sha256 - dist/*.deb - dist/*.rpm - body_path: changelog.md - token: ${{ secrets.GITHUB_TOKEN }} + - name: Generate latest.yml + run: pnpm updater - macos: - strategy: - fail-fast: false - matrix: - arch: - - x64 - - arm64 - runs-on: macos-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup pnpm - run: npm install -g pnpm - - name: Install Dependencies - env: - npm_config_arch: ${{ matrix.arch }} - npm_config_target_arch: ${{ matrix.arch }} - run: | - pnpm install - pnpm add @mihomo-party/sysproxy-darwin-${{ matrix.arch }} - pnpm prepare --${{ matrix.arch }} - - name: Build - env: - npm_config_arch: ${{ matrix.arch }} - npm_config_target_arch: ${{ matrix.arch }} - run: | - chmod +x build/pkg-scripts/postinstall - pnpm build:mac --${{ matrix.arch }} - - name: Generate checksums - run: pnpm checksum .pkg - name: Upload Artifacts - if: startsWith(github.ref, 'refs/heads/') uses: actions/upload-artifact@v4 with: - name: MacOS ${{ matrix.arch }} + name: ${{ matrix.os }}-${{ matrix.arch }} path: | - dist/*.sha256 - dist/*.pkg - if-no-files-found: error - - name: Publish Release - if: startsWith(github.ref, 'refs/tags/v') - uses: softprops/action-gh-release@v2 - with: - files: | - dist/*.sha256 - dist/*.pkg - body_path: changelog.md - token: ${{ secrets.GITHUB_TOKEN }} + dist/mihomo-party-* + latest.yml + changelog.md - artifact: - if: startsWith(github.ref, 'refs/heads/') - needs: [windows, linux, macos] + pre-release: + if: startsWith(github.ref, 'refs/heads/') || ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.version == '' }} + needs: [build] runs-on: ubuntu-latest - concurrency: - group: artifact - cancel-in-progress: false steps: - name: Download Artifacts uses: actions/download-artifact@v4 @@ -182,31 +79,46 @@ jobs: path: bin/ merge-multiple: true - - name: Upload Prerelease - uses: softprops/action-gh-release@v1 - if: ${{ success() }} + - name: Delete Current + uses: 8Mi-Tech/delete-release-assets-action@main + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + tag: pre-release + deleteOnlyFromDrafts: false + + - name: Publish Prerelease + if: success() + uses: softprops/action-gh-release@v2 with: tag_name: pre-release files: | - bin/* + bin/latest.yml + bin/dist/* prerelease: true - updater: - if: startsWith(github.ref, 'refs/tags/v') - needs: [windows, macos, linux] + release: + if: startsWith(github.ref, 'refs/tags/v') || (github.event_name == 'workflow_dispatch' && github.event.inputs.version != '') + needs: [build] runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup pnpm - run: npm install -g pnpm - - name: Install Dependencies - run: pnpm install - - name: Generate latest.yml - run: pnpm updater + - uses: actions/download-artifact@v4 + with: + path: bin/ + merge-multiple: true + + - name: Delete Current + uses: 8Mi-Tech/delete-release-assets-action@main + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.event.inputs.version != '' && github.event.inputs.version || github.ref }} + deleteOnlyFromDrafts: false + - name: Publish Release + if: success() uses: softprops/action-gh-release@v2 with: - files: latest.yml - body_path: changelog.md - token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + tag_name: ${{ github.event.inputs.version != '' && github.event.inputs.version || github.ref }} + body_path: bin/changelog.md + files: | + bin/latest.yml + bin/dist/* \ No newline at end of file diff --git a/changelog.md b/changelog.md index 302a4ae8..d5c48123 100644 --- a/changelog.md +++ b/changelog.md @@ -7,9 +7,9 @@ ### Features -- 支持编辑/查看外部资源 -- 支持重置应用 +- 添加出站接口查看 +- 添加更多嗅探配置 ### Bug Fixes -- 修复某些系统下应用白屏的问题 +- null diff --git a/package.json b/package.json index dc2e9e34..98baca3c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mihomo-party", - "version": "1.5.12", + "version": "1.5.13", "description": "Mihomo Party", "main": "./out/main/index.js", "author": "mihomo-party-org", diff --git a/scripts/updater.mjs b/scripts/updater.mjs index fcfd1b5b..b746f634 100644 --- a/scripts/updater.mjs +++ b/scripts/updater.mjs @@ -4,22 +4,16 @@ import { readFileSync, writeFileSync } from 'fs' const pkg = readFileSync('package.json', 'utf-8') let changelog = readFileSync('changelog.md', 'utf-8') const { version } = JSON.parse(pkg) -const downloadUrl = `https://github.com/mihomo-party-org/mihomo-party/releases/download/v${version}` +const downloadUrl = `https://github.com/xishang0128/mihomo-party/releases/download/v${version}` const latest = { version, changelog } changelog += '\n### 下载地址:\n\n#### Windows10/11:\n\n' -changelog += `- 安装版:[64位](${downloadUrl}/mihomo-party-windows-${version}-x64-setup.exe) | [32位](${downloadUrl}/mihomo-party-windows-${version}-ia32-setup.exe) | [ARM64](${downloadUrl}/mihomo-party-windows-${version}-arm64-setup.exe)\n\n` -changelog += `- 便携版:[64位](${downloadUrl}/mihomo-party-windows-${version}-x64-portable.7z) | [32位](${downloadUrl}/mihomo-party-windows-${version}-ia32-portable.7z) | [ARM64](${downloadUrl}/mihomo-party-windows-${version}-arm64-portable.7z)\n\n` -changelog += '\n#### Windows7/8:\n\n' -changelog += `- 安装版:[64位](${downloadUrl}/mihomo-party-win7-${version}-x64-setup.exe) | [32位](${downloadUrl}/mihomo-party-win7-${version}-ia32-setup.exe)\n\n` -changelog += `- 便携版:[64位](${downloadUrl}/mihomo-party-win7-${version}-x64-portable.7z) | [32位](${downloadUrl}/mihomo-party-win7-${version}-ia32-portable.7z)\n\n` +changelog += `- 安装版:[64位](${downloadUrl}/mihomo-party-windows-${version}-x64-setup.exe) | [ARM64](${downloadUrl}/mihomo-party-windows-${version}-arm64-setup.exe)\n\n` changelog += '\n#### macOS 11+:\n\n' changelog += `- PKG:[Intel](${downloadUrl}/mihomo-party-macos-${version}-x64.pkg) | [Apple Silicon](${downloadUrl}/mihomo-party-macos-${version}-arm64.pkg)\n\n` -changelog += '\n#### macOS 10.15+:\n\n' -changelog += `- PKG:[Intel](${downloadUrl}/mihomo-party-catalina-${version}-x64.pkg) | [Apple Silicon](${downloadUrl}/mihomo-party-catalina-${version}-arm64.pkg)\n\n` changelog += '\n#### Linux:\n\n' changelog += `- DEB:[64位](${downloadUrl}/mihomo-party-linux-${version}-amd64.deb) | [ARM64](${downloadUrl}/mihomo-party-linux-${version}-arm64.deb)\n\n` changelog += `- RPM:[64位](${downloadUrl}/mihomo-party-linux-${version}-x86_64.rpm) | [ARM64](${downloadUrl}/mihomo-party-linux-${version}-aarch64.rpm)` diff --git a/src/main/resolve/autoUpdater.ts b/src/main/resolve/autoUpdater.ts index b1a1cb1a..7e900204 100644 --- a/src/main/resolve/autoUpdater.ts +++ b/src/main/resolve/autoUpdater.ts @@ -13,7 +13,7 @@ import { promisify } from 'util' export async function checkUpdate(): Promise { const { 'mixed-port': mixedPort = 7890 } = await getControledMihomoConfig() const res = await axios.get( - 'https://github.com/mihomo-party-org/mihomo-party/releases/latest/download/latest.yml', + 'https://github.com/xishang0128/mihomo-party/releases/latest/download/latest.yml', { headers: { 'Content-Type': 'application/octet-stream' }, proxy: { @@ -35,7 +35,7 @@ export async function checkUpdate(): Promise { export async function downloadAndInstallUpdate(version: string): Promise { const { 'mixed-port': mixedPort = 7890 } = await getControledMihomoConfig() - const baseUrl = `https://github.com/mihomo-party-org/mihomo-party/releases/download/v${version}/` + const baseUrl = `https://github.com/xishang0128/mihomo-party/releases/download/v${version}/` const fileMap = { 'win32-x64': `mihomo-party-windows-${version}-x64-setup.exe`, 'win32-ia32': `mihomo-party-windows-${version}-ia32-setup.exe`, diff --git a/src/renderer/src/components/connections/connection-detail-modal.tsx b/src/renderer/src/components/connections/connection-detail-modal.tsx index b1096dd6..9dbbc384 100644 --- a/src/renderer/src/components/connections/connection-detail-modal.tsx +++ b/src/renderer/src/components/connections/connection-detail-modal.tsx @@ -135,8 +135,8 @@ const ConnectionDetailModal: React.FC = (props) => { {dayjs(connection.start).fromNow()} - {connection.rule} - {connection.rulePayload ? `(${connection.rulePayload})` : '未命中任何规则'} + {connection.rule ? connection.rule : '未命中任何规则'} + {connection.rulePayload ? `(${connection.rulePayload})` : ''} {[...connection.chains].reverse().join('>>')} {calcTraffic(connection.uploadSpeed || 0)}/s diff --git a/src/renderer/src/components/settings/general-config.tsx b/src/renderer/src/components/settings/general-config.tsx index c595074f..9698f0ab 100644 --- a/src/renderer/src/components/settings/general-config.tsx +++ b/src/renderer/src/components/settings/general-config.tsx @@ -50,6 +50,7 @@ const GeneralConfig: React.FC = () => { customTheme = 'default.css', envType = [platform === 'win32' ? 'powershell' : 'bash'], autoCheckUpdate, + updateChannel = 'release', appTheme = 'system' } = appConfig || {} @@ -101,6 +102,20 @@ const GeneralConfig: React.FC = () => { }} /> + {/* + + */} = (props) => { size="sm" className="flex app-nodrag" onPress={() => { - open(`https://github.com/mihomo-party-org/mihomo-party/releases/tag/v${version}`) + open(`https://github.com/xishang0128/mihomo-party/releases/tag/v${version}`) }} > 前往下载 diff --git a/src/renderer/src/pages/settings.tsx b/src/renderer/src/pages/settings.tsx index 4dbe8f13..585b51dc 100644 --- a/src/renderer/src/pages/settings.tsx +++ b/src/renderer/src/pages/settings.tsx @@ -36,7 +36,7 @@ const Settings: React.FC = () => { className="app-nodrag" title="GitHub 仓库" onPress={() => { - window.open('https://github.com/mihomo-party-org/mihomo-party') + window.open('https://github.com/xishang0128/mihomo-party') }} > diff --git a/src/shared/types.d.ts b/src/shared/types.d.ts index c53a9ad8..a6a5b885 100644 --- a/src/shared/types.d.ts +++ b/src/shared/types.d.ts @@ -304,6 +304,7 @@ interface IAppConfig { appTheme: AppTheme customTheme?: string autoCheckUpdate: boolean + updateChannel: string silentStart: boolean autoCloseConnection: boolean sysProxy: ISysProxyConfig