diff --git a/.github/workflows/publish-linux.yml b/.github/workflows/publish-linux.yml index d7368f36..f78d6d82 100644 --- a/.github/workflows/publish-linux.yml +++ b/.github/workflows/publish-linux.yml @@ -14,17 +14,15 @@ jobs: - name: Checkout git repo uses: actions/checkout@v1 - - name: Install Node and NPM - uses: actions/setup-node@v1 + - name: Install Node and PNPM + uses: pnpm/action-setup@v4 with: - node-version: 18 - cache: npm + version: 9 - name: Install dependencies - run: | - npm install --legacy-peer-deps + run: pnpm install - - name: Publish releases + - name: Build and Publish releases env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} uses: nick-invision/retry@v2.8.2 @@ -33,12 +31,11 @@ jobs: max_attempts: 3 retry_on: error command: | - npm run postinstall - npm run build - npm exec electron-builder -- --publish always --linux - on_retry_command: npm cache clean --force + pnpm run package:linux + pnpm run publish:linux + on_retry_command: pnpm cache delete - - name: Publish releases (arm64) + - name: Build and Publish releases (arm64) env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} uses: nick-invision/retry@v2.8.2 @@ -47,7 +44,6 @@ jobs: max_attempts: 3 retry_on: error command: | - npm run postinstall - npm run build - npm exec electron-builder -- --publish always --arm64 - on_retry_command: npm cache clean --force + pnpm run package:linux-arm64 + pnpm run publish:linux-arm64 + on_retry_command: pnpm cache delete diff --git a/.github/workflows/publish-macos.yml b/.github/workflows/publish-macos.yml index 6ff70d13..e34f8e9f 100644 --- a/.github/workflows/publish-macos.yml +++ b/.github/workflows/publish-macos.yml @@ -14,17 +14,15 @@ jobs: - name: Checkout git repo uses: actions/checkout@v1 - - name: Install Node and NPM - uses: actions/setup-node@v1 + - name: Install Node and PNPM + uses: pnpm/action-setup@v4 with: - node-version: 18 - cache: npm + version: 9 - name: Install dependencies - run: | - npm install --legacy-peer-deps + run: pnpm install - - name: Publish releases + - name: Build and Publish releases env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} uses: nick-invision/retry@v2.8.2 @@ -33,7 +31,6 @@ jobs: max_attempts: 3 retry_on: error command: | - npm run postinstall - npm run build - npm exec electron-builder -- --publish always --mac - on_retry_command: npm cache clean --force + pnpm run package:mac + pnpm run publish:mac + on_retry_command: pnpm cache delete diff --git a/.github/workflows/publish-pr.yml b/.github/workflows/publish-pr.yml index a6f12b06..3fcc5d31 100644 --- a/.github/workflows/publish-pr.yml +++ b/.github/workflows/publish-pr.yml @@ -17,15 +17,13 @@ jobs: - name: Checkout git repo uses: actions/checkout@v3 - - name: Install Node and NPM - uses: actions/setup-node@v3 + - name: Install Node and PNPM + uses: pnpm/action-setup@v4 with: - node-version: 18 - cache: npm + version: 9 - name: Install dependencies - run: | - npm install --legacy-peer-deps + run: pnpm install - name: Build for Windows if: ${{ matrix.os == 'windows-latest' }} @@ -35,7 +33,7 @@ jobs: max_attempts: 3 retry_on: error command: | - npm run package:pr:windows + pnpm run package:win:pr - name: Build for Linux if: ${{ matrix.os == 'ubuntu-latest' }} @@ -45,7 +43,7 @@ jobs: max_attempts: 3 retry_on: error command: | - npm run package:pr:linux + pnpm run package:linux:pr - name: Build for MacOS if: ${{ matrix.os == 'macos-latest' }} @@ -55,41 +53,41 @@ jobs: max_attempts: 3 retry_on: error command: | - npm run package:pr:macos + pnpm run package:mac:pr - name: Zip Windows Binaries if: ${{ matrix.os == 'windows-latest' }} shell: pwsh run: | - Compress-Archive -Path "release/build/*.exe" -DestinationPath "release/build/windows-binaries.zip" -Force + Compress-Archive -Path "dist/*.exe" -DestinationPath "dist/windows-binaries.zip" -Force - name: Zip Linux Binaries if: ${{ matrix.os == 'ubuntu-latest' }} run: | - zip -r release/build/linux-binaries.zip release/build/*.{AppImage,deb,rpm} + zip -r dist/linux-binaries.zip dist/*.{AppImage,deb,rpm} - name: Zip MacOS Binaries if: ${{ matrix.os == 'macos-latest' }} run: | - zip -r release/build/macos-binaries.zip release/build/*.dmg + zip -r dist/macos-binaries.zip dist/*.dmg - name: Upload Windows Binaries if: ${{ matrix.os == 'windows-latest' }} uses: actions/upload-artifact@v4 with: name: windows-binaries - path: release/build/windows-binaries.zip + path: dist/windows-binaries.zip - name: Upload Linux Binaries if: ${{ matrix.os == 'ubuntu-latest' }} uses: actions/upload-artifact@v4 with: name: linux-binaries - path: release/build/linux-binaries.zip + path: dist/linux-binaries.zip - name: Upload MacOS Binaries if: ${{ matrix.os == 'macos-latest' }} uses: actions/upload-artifact@v4 with: name: macos-binaries - path: release/build/macos-binaries.zip + path: dist/macos-binaries.zip diff --git a/.github/workflows/publish-windows.yml b/.github/workflows/publish-windows.yml index 2edf16a2..13bd7604 100644 --- a/.github/workflows/publish-windows.yml +++ b/.github/workflows/publish-windows.yml @@ -14,17 +14,15 @@ jobs: - name: Checkout git repo uses: actions/checkout@v1 - - name: Install Node and NPM - uses: actions/setup-node@v1 + - name: Install Node and PNPM + uses: pnpm/action-setup@v4 with: - node-version: 18 - cache: npm + version: 9 - name: Install dependencies - run: | - npm install --legacy-peer-deps + run: pnpm install - - name: Publish releases + - name: Build and Publish releases env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} uses: nick-invision/retry@v2.8.2 @@ -33,7 +31,6 @@ jobs: max_attempts: 3 retry_on: error command: | - npm run postinstall - npm run build - npm exec electron-builder -- --publish always --win - on_retry_command: npm cache clean --force + pnpm run package:win + pnpm run publish:win + on_retry_command: pnpm cache delete diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 34e13e03..a19bd625 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,21 +14,13 @@ jobs: - name: Check out Git repository uses: actions/checkout@v1 - - name: Install Node.js and NPM - uses: actions/setup-node@v2 + - name: Install Node.js and PNPM + uses: pnpm/action-setup@v4 with: - node-version: 16 - cache: npm + version: 9 - - name: npm install - run: | - npm install --legacy-peer-deps + - name: Install dependencies + run: pnpm install - - name: npm test - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - npm run lint - npm run package - npm exec tsc - npm test + - name: Lint Files + run: pnpm run lint diff --git a/assets/entitlements.mac.plist b/assets/entitlements.mac.plist index dad3e20e..38c887b2 100644 --- a/assets/entitlements.mac.plist +++ b/assets/entitlements.mac.plist @@ -2,9 +2,11 @@ + com.apple.security.cs.allow-jit + com.apple.security.cs.allow-unsigned-executable-memory - com.apple.security.cs.allow-jit + com.apple.security.cs.allow-dyld-environment-variables diff --git a/build/entitlements.mac.plist b/build/entitlements.mac.plist deleted file mode 100644 index 38c887b2..00000000 --- a/build/entitlements.mac.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.cs.allow-jit - - com.apple.security.cs.allow-unsigned-executable-memory - - com.apple.security.cs.allow-dyld-environment-variables - - - diff --git a/build/icon.icns b/build/icon.icns deleted file mode 100644 index 93da8771..00000000 Binary files a/build/icon.icns and /dev/null differ diff --git a/build/icon.ico b/build/icon.ico deleted file mode 100644 index 1e9d1e04..00000000 Binary files a/build/icon.ico and /dev/null differ diff --git a/build/icon.png b/build/icon.png deleted file mode 100644 index f364f2c1..00000000 Binary files a/build/icon.png and /dev/null differ diff --git a/electron-builder.yml b/electron-builder.yml index 5f303872..a0b2bb23 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -3,7 +3,7 @@ productName: Feishin artifactName: ${productName}-${version}-${os}-setup.${ext} electronVersion: 35.1.5 directories: - buildResources: build + buildResources: assets files: - '!**/.vscode/*' - '!src/*' @@ -33,8 +33,8 @@ mac: icon: assets/icons/icon.icns type: distribution hardenedRuntime: true - entitlements: build/entitlements.mac.plist - entitlementsInherit: build/entitlements.mac.plist + entitlements: assets/entitlements.mac.plist + entitlementsInherit: assets/entitlements.mac.plist gatekeeperAssess: false notarize: false dmg: diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 04ad65dd..79f98a37 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -9,7 +9,6 @@ const currentOSEnv = process.platform; const config: UserConfig = { main: { build: { - outDir: './release/app/dist/main', rollupOptions: { external: ['source-map-support'], }, @@ -35,9 +34,6 @@ const config: UserConfig = { }, }, preload: { - build: { - outDir: './release/app/dist/preload', - }, plugins: [externalizeDepsPlugin()], resolve: { alias: { @@ -47,9 +43,6 @@ const config: UserConfig = { }, }, renderer: { - build: { - outDir: './release/app/dist/web', - }, css: { modules: { generateScopedName: '[name]__[local]__[hash:base64:5]', diff --git a/package.json b/package.json index 1263a78a..ddf87791 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "name": "jeffvli", "url": "https://github.com/jeffvli/" }, - "main": "./release/app/dist/main/index.js", + "main": "./out/main/index.js", "scripts": { "build": "pnpm run typecheck && electron-vite build", "dev": "electron-vite dev", @@ -27,11 +27,20 @@ "i18next": "i18next -c src/i18n/i18next-parser.config.js", "postinstall": "electron-builder install-app-deps", "lint": "eslint --cache --fix .", + "lint:fix": "eslint --cache --fix .", "package": "pnpm run build && electron-builder", "package:dev": "pnpm run build && electron-builder --dir", - "package:linux": "electron-vite build && electron-builder --linux", - "package:mac": "electron-vite build && electron-builder --mac", + "package:linux": "pnpm run build && electron-builder --linux", + "package:linux-arm64:pr": "pnpm run build && electron-builder --linux --arm64 --publish never", + "package:linux:pr": "pnpm run build && electron-builder --linux --publish never", + "package:mac": "pnpm run build && electron-builder --mac", + "package:mac:pr": "pnpm run build && electron-builder --mac --publish never", "package:win": "pnpm run build && electron-builder --win", + "package:win:pr": "pnpm run build && electron-builder --win --publish never", + "publish:linux": "electron-builder --publish always --linux", + "publish:linux-arm64": "electron-builder --publish always --linux --arm64", + "publish:mac": "electron-builder --publish always --mac", + "publish:win": "electron-builder --publish always --win", "start": "electron-vite preview", "typecheck": "pnpm run typecheck:node && pnpm run typecheck:web", "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",