From e0af19dd2edd1e8a9dc01066beab2fa808f6110e Mon Sep 17 00:00:00 2001 From: AmintaCCCP Date: Tue, 23 Sep 2025 16:37:52 +0800 Subject: [PATCH] Revert "fix workflow" This reverts commit 0678fe9b04482a274cc5f2af9721d87e1c0b639d. --- .github/workflows/build-desktop.yml | 42 ++------------- electron-builder.yml | 48 ++++++++++++----- package.json | 59 +------------------- scripts/build-electron.js | 83 ----------------------------- 4 files changed, 40 insertions(+), 192 deletions(-) delete mode 100644 scripts/build-electron.js diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index 757eec4..526b0d8 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -399,9 +399,6 @@ jobs: shortcutName: 'GitHub Stars Manager' }; } else if ('${{ matrix.os }}' === 'macos-latest') { - // Check if signing certificates are available - const hasSigningCerts = '${{ secrets.CSC_LINK }}' && '${{ secrets.CSC_KEY_PASSWORD }}'; - packageJson.build.mac = { target: [ { @@ -411,19 +408,13 @@ jobs: ], icon: 'build/icon.png', category: 'public.app-category.productivity', - hardenedRuntime: hasSigningCerts, - gatekeeperAssess: false, - identity: hasSigningCerts ? undefined : null // Skip code signing if no certs + hardenedRuntime: true, + gatekeeperAssess: false }; packageJson.build.dmg = { title: 'GitHub Stars Manager', icon: 'build/icon.png' }; - - // Add afterSign hook to skip notarization if no credentials - if (!hasSigningCerts) { - console.log('No signing certificates found, building unsigned app'); - } } else { packageJson.build.linux = { target: 'AppImage', @@ -452,25 +443,6 @@ jobs: echo "Build directory contents:" ls -la build/ || echo "No build directory" echo "" - - # Ensure build directory and icon exist - if [ ! -d "build" ]; then - mkdir -p build - echo "Created build directory" - fi - - if [ ! -f "build/icon.png" ]; then - if [ -f "assets/icon.png" ]; then - cp assets/icon.png build/icon.png - echo "Copied icon from assets/" - elif [ -f "public/icon.png" ]; then - cp public/icon.png build/icon.png - echo "Copied icon from public/" - else - echo "Warning: No icon file found, electron-builder may fail" - fi - fi - echo "Package.json build config:" node -e "console.log(JSON.stringify(require('./package.json').build, null, 2))" echo "" @@ -487,21 +459,15 @@ jobs: chmod -R 755 electron/ || echo "Could not set electron permissions" chmod -R 755 build/ || echo "Could not set build permissions" - - name: Make build script executable - shell: bash - run: chmod +x scripts/build-electron.js - - name: Build Electron app - run: node scripts/build-electron.js + run: npm run dist env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} CI: true DEBUG: electron-builder # Linux 特定环境变量 ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES: true - # Disable code signing for unsigned builds - CSC_IDENTITY_AUTO_DISCOVERY: false - # Only set signing vars if they exist + # macOS signing and notarization CSC_LINK: ${{ secrets.CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} APPLE_ID: ${{ secrets.APPLE_ID }} diff --git a/electron-builder.yml b/electron-builder.yml index 24333c2..316618b 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -12,22 +12,18 @@ files: - electron/**/* - node_modules/**/* - package.json - - "!node_modules/.cache/**/*" - - "!**/*.map" extraMetadata: main: electron/main.js -compression: normal -asar: false - # Windows配置 win: target: - target: nsis arch: - x64 - icon: build/icon.png + - ia32 + icon: dist/vite.svg nsis: oneClick: false @@ -43,15 +39,26 @@ mac: arch: - x64 - arm64 - icon: build/icon.png + icon: dist/vite.svg category: public.app-category.productivity - hardenedRuntime: false - gatekeeperAssess: false - identity: null + hardenedRuntime: true + entitlements: build/entitlements.mac.plist + entitlementsInherit: build/entitlements.mac.inherit.plist dmg: title: GitHub Stars Manager - icon: build/icon.png + icon: dist/vite.svg + window: + width: 540 + height: 380 + contents: + - x: 410 + y: 230 + type: link + path: /Applications + - x: 130 + y: 230 + type: file # Linux配置 linux: @@ -59,8 +66,21 @@ linux: - target: AppImage arch: - x64 - icon: build/icon.png + - target: deb + arch: + - x64 + - target: rpm + arch: + - x64 + icon: dist/vite.svg category: Office + synopsis: AI-powered GitHub starred repositories management tool + description: > + GitHub Stars Manager is an intelligent tool for organizing and managing + your GitHub starred repositories with AI-powered analysis and release tracking. -# 发布配置 - 禁用自动发布 -publish: null \ No newline at end of file +# 发布配置 +publish: + provider: github + owner: your-username + repo: your-repo-name \ No newline at end of file diff --git a/package.json b/package.json index a219576..bd9b5e1 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,6 @@ "private": true, "version": "0.1.5", "type": "module", - "main": "electron/main.js", - "homepage": "./", "scripts": { "dev": "vite", "build": "vite build", @@ -13,8 +11,7 @@ "build:desktop": "node scripts/build-desktop.js", "electron": "electron electron/main.js", "electron:dev": "NODE_ENV=development electron electron/main.js", - "dist": "node scripts/build-electron.js", - "dist:direct": "electron-builder", + "dist": "electron-builder", "update-version": "node scripts/update-version.cjs" }, "dependencies": { @@ -31,67 +28,15 @@ "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.1", "autoprefixer": "^10.4.18", - "electron": "^38.1.2", - "electron-builder": "^26.0.12", "eslint": "^9.9.1", "eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-refresh": "^0.4.11", "globals": "^15.9.0", "postcss": "^8.4.35", - "sharp": "^0.34.4", "tailwindcss": "^3.4.1", "typescript": "^5.5.3", "typescript-eslint": "^8.3.0", "vite": "^5.4.2", "xml2js": "^0.6.2" - }, - "build": { - "appId": "com.github-stars-manager.app", - "productName": "GitHub Stars Manager", - "directories": { - "output": "release", - "buildResources": "build" - }, - "files": [ - "dist/**/*", - "build/**/*", - "electron/**/*", - "node_modules/**/*", - "package.json", - "!node_modules/.cache/**/*", - "!**/*.map" - ], - "extraResources": [ - { - "from": "dist", - "to": "dist", - "filter": [ - "**/*" - ] - } - ], - "compression": "normal", - "asar": false, - "publish": null, - "mac": { - "target": [ - { - "target": "dmg", - "arch": [ - "x64", - "arm64" - ] - } - ], - "icon": "build/icon.png", - "category": "public.app-category.productivity", - "hardenedRuntime": false, - "gatekeeperAssess": false, - "identity": null - }, - "dmg": { - "title": "GitHub Stars Manager", - "icon": "build/icon.png" - } } -} \ No newline at end of file +} diff --git a/scripts/build-electron.js b/scripts/build-electron.js deleted file mode 100644 index 9125ff5..0000000 --- a/scripts/build-electron.js +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env node - -const { execSync } = require('child_process'); -const fs = require('fs'); -const path = require('path'); - -console.log('🚀 Starting Electron build process...'); - -// Check if we're on macOS and handle signing -const isMacOS = process.platform === 'darwin'; -const hasSigningCerts = process.env.CSC_LINK && process.env.CSC_KEY_PASSWORD; - -if (isMacOS && !hasSigningCerts) { - console.log('⚠️ No signing certificates found for macOS build'); - console.log('📦 Building unsigned macOS app...'); - - // Set environment variables to skip signing - process.env.CSC_IDENTITY_AUTO_DISCOVERY = 'false'; - process.env.CSC_LINK = ''; - process.env.CSC_KEY_PASSWORD = ''; -} - -// Ensure build directory exists -if (!fs.existsSync('build')) { - fs.mkdirSync('build', { recursive: true }); - console.log('📁 Created build directory'); -} - -// Copy icon if it exists -const iconSources = ['assets/icon.png', 'public/icon.png', 'src/assets/icon.png']; -let iconCopied = false; - -for (const iconPath of iconSources) { - if (fs.existsSync(iconPath)) { - fs.copyFileSync(iconPath, 'build/icon.png'); - console.log(`📷 Copied icon from ${iconPath}`); - iconCopied = true; - break; - } -} - -if (!iconCopied) { - console.log('⚠️ No icon found, using default'); -} - -try { - // Debug environment - console.log('🔍 Environment info:'); - console.log(`Platform: ${process.platform}`); - console.log(`Architecture: ${process.arch}`); - console.log(`Node version: ${process.version}`); - console.log(`CSC_IDENTITY_AUTO_DISCOVERY: ${process.env.CSC_IDENTITY_AUTO_DISCOVERY}`); - - // Check required files - const requiredFiles = ['dist/index.html', 'electron/main.js', 'build/icon.png']; - for (const file of requiredFiles) { - if (fs.existsSync(file)) { - console.log(`✅ Found: ${file}`); - } else { - console.log(`⚠️ Missing: ${file}`); - } - } - - // Run electron-builder - console.log('🔨 Running electron-builder...'); - execSync('npx electron-builder --publish=never', { - stdio: 'inherit', - env: { ...process.env } - }); - - console.log('✅ Electron build completed successfully!'); - - // List output files - if (fs.existsSync('release')) { - console.log('📦 Build artifacts:'); - const files = fs.readdirSync('release'); - files.forEach(file => console.log(` - ${file}`)); - } -} catch (error) { - console.error('❌ Electron build failed:', error.message); - console.error('Stack trace:', error.stack); - process.exit(1); -} \ No newline at end of file