Skip to content

Commit

Permalink
feat: add semantic-release to CI (#113)
Browse files Browse the repository at this point in the history
  • Loading branch information
HashCookie authored Jun 1, 2024
1 parent a8dd692 commit 705d0a4
Show file tree
Hide file tree
Showing 2 changed files with 143 additions and 1 deletion.
105 changes: 105 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: Build and Release Electron App

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build-macos:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20.8.1'
- name: Install dependencies
run: yarn install
- name: Build Electron app for macOS
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: yarn dist --mac
- name: Upload macOS build artifacts
uses: actions/upload-artifact@v2
with:
name: electron-app-macos
path: dist/*.dmg

build-windows:
runs-on: windows-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20.8.1'
- name: Install dependencies
run: yarn install
- name: Build Electron app for Windows
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: yarn dist --win
- name: Upload Windows build artifacts
uses: actions/upload-artifact@v2
with:
name: electron-app-windows
path: dist/*.exe

build-linux:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20.8.1'
- name: Install dependencies
run: yarn install
- name: Build Electron app for Linux
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: yarn dist --linux
- name: Upload Linux build artifacts
uses: actions/upload-artifact@v2
with:
name: electron-app-linux
path: dist/*.AppImage

release:
needs: [build-macos, build-windows, build-linux]
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20.8.1'
- name: Clear npm cache
run: npm cache clean --force
- name: Download macOS build artifacts
uses: actions/download-artifact@v2
with:
name: electron-app-macos
path: dist/macos
- name: Download Windows build artifacts
uses: actions/download-artifact@v2
with:
name: electron-app-windows
path: dist/windows
- name: Download Linux build artifacts
uses: actions/download-artifact@v2
with:
name: electron-app-linux
path: dist/linux
- name: Run semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: yarn release
39 changes: 38 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"start": "npx serve@latest out",
"lint": "next lint",
"electron": "electron .",
"dist": "yarn build && electron-builder"
"dist": "yarn build && electron-builder",
"release": "npx -p semantic-release -p @semantic-release/git -p @semantic-release/changelog -p @semantic-release/exec semantic-release"
},
"build": {
"appId": "org.casbin.editor",
Expand All @@ -30,6 +31,14 @@
"identity": null,
"hardenedRuntime": false
},
"linux": {
"target": [
"AppImage",
"deb"
],
"category": "Utility",
"maintainer": "org.casbin.editor"
},
"win": {
"target": "nsis"
},
Expand All @@ -38,6 +47,34 @@
"allowToChangeInstallationDirectory": true
}
},
"release": {
"branches": [
"master"
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/github",
{
"assets": [
{
"path": "dist/macos/*.dmg",
"label": "macOS"
},
{
"path": "dist/windows/*.exe",
"label": "Windows"
},
{
"path": "dist/linux/*.AppImage",
"label": "Linux"
}
]
}
]
]
},
"dependencies": {
"@codemirror/autocomplete": "^6.12.0",
"@codemirror/lang-javascript": "^6.2.1",
Expand Down

0 comments on commit 705d0a4

Please sign in to comment.