diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..b8f8fc9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,31 @@ +name: Build & release + +on: push + +jobs: + release: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + + steps: + - name: Check out Git repository + uses: actions/checkout@v1 + + - name: Install Node.js, NPM and Yarn + uses: actions/setup-node@v1 + with: + node-version: 10 + + - name: Build/release Electron app + uses: samuelmeuli/action-electron-builder@v1 + with: + # GitHub token, automatically provided to the action + # (No need to define this secret in the repo settings) + github_token: ${{ secrets.github_token }} + + # If the commit is tagged with a version (e.g. "v1.0.0"), + # release the app after building + release: ${{ startsWith(github.ref, 'refs/tags/v') }} diff --git a/default.nix b/default.nix index 8e983a8..a020ce6 100644 --- a/default.nix +++ b/default.nix @@ -12,6 +12,9 @@ pkgs.mkShell rec { pkgs.nodejs pkgs.nodejs.pkgs.pnpm + # build target: zip + pkgs.zip + # build target: deb pkgs.dpkg pkgs.fakeroot diff --git a/forge.config.ts b/forge.config.ts index 0c404a1..7900b94 100644 --- a/forge.config.ts +++ b/forge.config.ts @@ -3,6 +3,7 @@ import { MakerDeb } from "@electron-forge/maker-deb"; import { MakerFlatpak } from "@electron-forge/maker-flatpak"; import { MakerFlatpakOptionsConfig } from "@electron-forge/maker-flatpak/dist/Config"; import { MakerSquirrel } from "@electron-forge/maker-squirrel"; +import { MakerZIP } from "@electron-forge/maker-zip"; import { FusesPlugin } from "@electron-forge/plugin-fuses"; import { VitePlugin } from "@electron-forge/plugin-vite"; import { PublisherGithub } from "@electron-forge/publisher-github"; @@ -11,6 +12,7 @@ import { FuseV1Options, FuseVersion } from "@electron/fuses"; import { globSync } from "node:fs"; const STRINGS = { + author: "Revolt Platforms LTD", name: "Stoat", execName: "stoat-desktop", description: "Open source user-first chat platform.", @@ -33,8 +35,12 @@ const config: ForgeConfig = { makers: [ new MakerAppX({}), new MakerSquirrel({ + name: STRINGS.name, + authors: STRINGS.author, iconUrl: `${ASSET_DIR}/icon.ico`, + description: STRINGS.description, }), + new MakerZIP({}), new MakerFlatpak({ options: { id: "chat.stoat.stoat-desktop", @@ -95,6 +101,9 @@ const config: ForgeConfig = { }), new MakerDeb({ options: { + productName: STRINGS.name, + productDescription: STRINGS.description, + categories: ["Network"], icon: `${ASSET_DIR}/icon.png`, }, }), diff --git a/package.json b/package.json index 0a5a078..76b4622 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,7 @@ { "name": "stoat-desktop", "productName": "stoat-desktop", - "version": "1.0.0", - "description": "My Electron application description", + "version": "1.1.0", "main": ".vite/build/main.js", "repo": "stoatchat/desktop", "scripts": { @@ -25,6 +24,7 @@ "@electron-forge/maker-deb": "^7.9.0", "@electron-forge/maker-flatpak": "^7.9.0", "@electron-forge/maker-squirrel": "^7.9.0", + "@electron-forge/maker-zip": "^7.9.0", "@electron-forge/plugin-auto-unpack-natives": "^7.9.0", "@electron-forge/plugin-fuses": "^7.9.0", "@electron-forge/plugin-vite": "^7.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c77e473..eece011 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,6 +42,9 @@ importers: '@electron-forge/maker-squirrel': specifier: ^7.9.0 version: 7.9.0 + '@electron-forge/maker-zip': + specifier: ^7.9.0 + version: 7.9.0 '@electron-forge/plugin-auto-unpack-natives': specifier: ^7.9.0 version: 7.9.0 @@ -169,6 +172,10 @@ packages: resolution: {integrity: sha512-Ea3MrieWC1KRct1QSZeOBY+GIqHZO5bXj6xCuj81f6nz8JMCsXdgvKosdbfcJMSKu4SYZ52PtoweA6uAACfLww==} engines: {node: '>= 16.4.0'} + '@electron-forge/maker-zip@7.9.0': + resolution: {integrity: sha512-UGeziReiz8yuDTjliOjvbdyulIHpKAWkDeW3kOcMTUmRcCgrCkBNr+Pp6ih8Q3aBhG+CCd4++oe2rDnnuVvxFw==} + engines: {node: '>= 16.4.0'} + '@electron-forge/plugin-auto-unpack-natives@7.9.0': resolution: {integrity: sha512-PQeTq7Mp2bQkj/fdf+DjnSFKLWyBCSdLqZqNadszA9+2QcxFVv+v2ckTuwkHAdoecVNOdza/VZZIDbVFLhUHkQ==} engines: {node: '>= 16.4.0'} @@ -1220,6 +1227,10 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + cross-zip@4.0.1: + resolution: {integrity: sha512-n63i0lZ0rvQ6FXiGQ+/JFCKAUyPFhLQYJIqKaa+tSJtfKeULF/IDNDAbdnSIxgS4NTuw2b0+lj8LzfITuq+ZxQ==} + engines: {node: '>=12.10'} + data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -3324,6 +3335,17 @@ snapshots: - bluebird - supports-color + '@electron-forge/maker-zip@7.9.0': + dependencies: + '@electron-forge/maker-base': 7.9.0 + '@electron-forge/shared-types': 7.9.0 + cross-zip: 4.0.1 + fs-extra: 10.1.0 + got: 11.8.6 + transitivePeerDependencies: + - bluebird + - supports-color + '@electron-forge/plugin-auto-unpack-natives@7.9.0': dependencies: '@electron-forge/plugin-base': 7.9.0 @@ -4564,6 +4586,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-zip@4.0.1: {} + data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4