aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/dev_builds.yml50
-rw-r--r--.github/workflows/release_builds.yml51
-rw-r--r--PUBLISH.md13
-rw-r--r--package.json12
4 files changed, 120 insertions, 6 deletions
diff --git a/.github/workflows/dev_builds.yml b/.github/workflows/dev_builds.yml
new file mode 100644
index 0000000..1951ee7
--- /dev/null
+++ b/.github/workflows/dev_builds.yml
@@ -0,0 +1,50 @@
+name: Development builds CI
+on:
+ push:
+ pull_request:
+ types: [opened, reopened]
+
+jobs:
+ build-windows:
+ name: "Create Windows development builds"
+ runs-on: "windows-latest"
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ - name: Setup Node environment
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+ - name: Install dependencies
+ run: npm install
+ - name: Create builds
+ run: npm run build:windows
+ - name: Archive production artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: viper-windows-builds
+ path: |
+ dist/*.exe
+ build-linux:
+ name: "Create Linux development builds"
+ runs-on: "ubuntu-latest"
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ - name: Setup Node environment
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+ - name: Install dependencies
+ run: npm install
+ - name: Create builds
+ run: npm run build:linux
+ - name: Archive production artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: viper-linux-builds
+ path: |
+ dist/*.AppImage
+ dist/*.tar.gz
+ dist/*.deb
+ dist/*.rpm \ No newline at end of file
diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml
new file mode 100644
index 0000000..bc3dac6
--- /dev/null
+++ b/.github/workflows/release_builds.yml
@@ -0,0 +1,51 @@
+name: Release CI
+on:
+ release:
+ types: [ prereleased ]
+jobs:
+ build-windows:
+ name: "Create Windows release builds"
+ runs-on: "windows-latest"
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ - name: Setup Node environment
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+ - name: Install dependencies
+ run: npm install
+ - name: Create builds
+ run: npm run build:windows
+ - name: Upload production artifacts to release
+ uses: xresloader/upload-to-github-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ file: "dist/*.exe*;dist/latest.yml"
+ release_id: ${{ github.event.release.id }}
+ draft: false
+ prerelease: true
+ build-linux:
+ name: "Create Linux release builds"
+ runs-on: "ubuntu-latest"
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ - name: Setup Node environment
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+ - name: Install dependencies
+ run: npm install
+ - name: Create builds
+ run: npm run build:linux
+ - name: Upload production artifacts to release
+ uses: xresloader/upload-to-github-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ file: "dist/*.AppImage;dist/*.tar.gz;dist/*.deb;dist/*.rpm;dist/latest-linux.yml"
+ release_id: ${{ github.event.release.id }}
+ draft: false
+ prerelease: true
diff --git a/PUBLISH.md b/PUBLISH.md
index 761d2fe..f4833be 100644
--- a/PUBLISH.md
+++ b/PUBLISH.md
@@ -8,3 +8,16 @@
6. Build and publish with `npm run publish:[windows/linux]`
- Optionally just use `build/publish.sh`, however that only works on Linux/Systems with a `/bin/sh` file, it also checks whether all files have been localized, and that the version numbers have been updated
7. Edit the draft release message and publish the new release!
+
+## CI release
+
+If you don't want to build releases yourself, you can make GitHub build them for you!
+
+ 1. Make sure your code works!
+ 2. Update `package.json` version
+ 3. Make sure `package.json`'s `repository.url` key references correct repository
+ 4. Ensure application builds correctly with `npm run build:[windows/linux]`
+ 5. Create a prerelease with newest version name
+ - Creating the prerelease will trigger CI, that will build all executables
+ - You can use build time to update release notes :)
+ 6. When all binaries have been uploaded to the prerelease, you can publish it! \ No newline at end of file
diff --git a/package.json b/package.json
index 51565cd..e2a50b2 100644
--- a/package.json
+++ b/package.json
@@ -29,12 +29,12 @@
"langs": "node build/langs.js",
"start": "npx electron src/index.js",
"debug": "npx electron src/index.js --debug",
- "build": "npx electron-builder --win nsis --win portable --linux",
- "build:windows": "npx electron-builder --win nsis --win portable",
- "build:linux": "npx electron-builder --linux",
- "publish": "npx electron-builder --win nsis --win portable --linux -p always",
- "publish:windows": "npx electron-builder --win nsis --win portable -p always",
- "publish:linux": "npx electron-builder --linux -p always"
+ "build": "npx electron-builder --win nsis --win portable --linux --publish never",
+ "build:windows": "npx electron-builder --win nsis --win portable --publish never",
+ "build:linux": "npx electron-builder --linux --publish never",
+ "publish": "npx electron-builder --win nsis --win portable --linux --publish always",
+ "publish:windows": "npx electron-builder --win nsis --win portable --publish always",
+ "publish:linux": "npx electron-builder --linux --publish always"
},
"repository": {
"type": "git",