diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 614018bf..2fb1c36f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,8 +10,8 @@ permissions: contents: write jobs: - package-mac: - runs-on: macos-latest + build: + runs-on: ubuntu-latest steps: - name: Checkout @@ -32,13 +32,41 @@ jobs: - name: Build app run: pnpm build - - name: Package macOS - uses: nick-fields/retry@v3 + - name: Upload dist artifact + uses: actions/upload-artifact@v4 with: - timeout_minutes: 30 - max_attempts: 3 - retry_wait_seconds: 10 - command: pnpm dist:mac --publish always + name: dist + path: | + out/renderer + dist-electron + retention-days: 1 + + release-mac: + needs: build + runs-on: macos-14 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download dist artifact + uses: actions/download-artifact@v4 + with: + name: dist + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - name: Install dependencies + run: pnpm install --no-frozen-lockfile + + - name: Package & Release (macOS) env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} CSC_LINK: ${{ secrets.CSC_LINK }} @@ -46,14 +74,21 @@ jobs: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + run: pnpm dist:mac - package-win: + release-win: + needs: build runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 + - name: Download dist artifact + uses: actions/download-artifact@v4 + with: + name: dist + - name: Setup pnpm uses: pnpm/action-setup@v4 @@ -66,10 +101,7 @@ jobs: - name: Install dependencies run: pnpm install --no-frozen-lockfile - - name: Build app - run: pnpm build - - - name: Package Windows + - name: Package & Release (Windows) env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: pnpm dist:win --publish always + run: pnpm dist:win diff --git a/electron-builder.yml b/electron-builder.yml deleted file mode 100644 index c33756b0..00000000 --- a/electron-builder.yml +++ /dev/null @@ -1,45 +0,0 @@ -appId: com.claudecode.context -productName: claude-devtools - -directories: - output: release - -files: - - out/renderer/** - - dist-electron/** - - package.json - -asar: true - -extraMetadata: - main: dist-electron/main/index.js - -mac: - category: public.app-category.developer-tools - target: - - dmg - - zip - hardenedRuntime: true - gatekeeperAssess: false - entitlements: resources/entitlements.mac.plist - entitlementsInherit: resources/entitlements.mac.inherit.plist - notarize: - teamId: ${env.APPLE_TEAM_ID} - icon: resources/icons/mac/icon.icns - -dmg: - sign: false - -win: - target: - - nsis - icon: resources/icons/win/icon.ico - -nsis: - oneClick: false - perMachine: false - allowToChangeInstallationDirectory: true - -publish: - - provider: github - releaseType: draft diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 014946c0..c133e417 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -10,7 +10,10 @@ export default defineConfig({ 'unified', 'remark-parse', 'remark-gfm', - 'mdast-util-to-hast' + 'mdast-util-to-hast', + 'fastify', + '@fastify/cors', + '@fastify/static' ] }) ], diff --git a/package.json b/package.json index 398cfb6b..3a3d024b 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "scripts": { "dev": "electron-vite dev", "build": "electron-vite build", - "dist": "electron-builder --config electron-builder.yml --mac --win", - "dist:mac": "electron-builder --config electron-builder.yml --mac", - "dist:win": "electron-builder --config electron-builder.yml --win", + "dist": "electron-builder --mac --win", + "dist:mac": "electron-builder --mac --publish always", + "dist:win": "electron-builder --win --publish always", "preview": "electron-vite preview", "typecheck": "tsc --noEmit", "lint": "eslint src/", @@ -112,6 +112,55 @@ "vite": "^5.4.2", "vitest": "^3.1.4" }, + "build": { + "appId": "com.claudecode.context", + "productName": "claude-devtools", + "directories": { + "output": "release" + }, + "files": [ + "out/renderer/**", + "dist-electron/**", + "package.json" + ], + "asar": true, + "extraMetadata": { + "main": "dist-electron/main/index.js" + }, + "mac": { + "category": "public.app-category.developer-tools", + "target": [ + "dmg", + "zip" + ], + "hardenedRuntime": true, + "gatekeeperAssess": false, + "notarize": true, + "entitlements": "resources/entitlements.mac.plist", + "entitlementsInherit": "resources/entitlements.mac.inherit.plist", + "icon": "resources/icons/mac/icon.icns" + }, + "dmg": { + "sign": false + }, + "win": { + "target": [ + "nsis" + ], + "icon": "resources/icons/win/icon.ico" + }, + "nsis": { + "oneClick": false, + "perMachine": false, + "allowToChangeInstallationDirectory": true + }, + "publish": [ + { + "provider": "github", + "releaseType": "draft" + } + ] + }, "pnpm": { "overrides": { "@electron/notarize": "^2.5.0"