mirror of
https://github.com/YuzuZensai/Discord-Presence-Relay.git
synced 2026-09-13 10:49:02 +00:00
👷 ci: Add dynamic versioning for build artifacts
This commit is contained in:
@@ -7,7 +7,6 @@ on:
|
||||
tags:
|
||||
- 'v*'
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -41,9 +40,6 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Build
|
||||
run: pnpm ${{ matrix.build-script }}
|
||||
|
||||
- name: Set artifact version
|
||||
id: version
|
||||
shell: bash
|
||||
@@ -54,8 +50,13 @@ jobs:
|
||||
echo "value=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
BUILD_VERSION: ${{ steps.version.outputs.value }}
|
||||
run: pnpm ${{ matrix.build-script }}
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v5
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: ${{ matrix.os }}-${{ steps.version.outputs.value }}
|
||||
path: |
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
appId: cafe.kirameki.discord-rpc-relay
|
||||
productName: Discord RPC Relay
|
||||
directories:
|
||||
buildResources: build
|
||||
files:
|
||||
- '!**/.vscode/*'
|
||||
- '!src/*'
|
||||
- '!electron.vite.config.{js,ts,mjs,cjs}'
|
||||
- '!{.eslintcache,eslint.config.mjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
|
||||
- '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
|
||||
- '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
|
||||
asarUnpack:
|
||||
- resources/**
|
||||
win:
|
||||
executableName: discord-rpc-relay
|
||||
nsis:
|
||||
artifactName: ${name}-${version}-setup.${ext}
|
||||
shortcutName: ${productName}
|
||||
uninstallDisplayName: ${productName}
|
||||
createDesktopShortcut: always
|
||||
mac:
|
||||
entitlementsInherit: build/entitlements.mac.plist
|
||||
extendInfo:
|
||||
- NSCameraUsageDescription: Application requests access to the device's camera.
|
||||
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
|
||||
- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
|
||||
- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
|
||||
notarize: false
|
||||
dmg:
|
||||
artifactName: ${name}-${version}.${ext}
|
||||
linux:
|
||||
target:
|
||||
- AppImage
|
||||
- deb
|
||||
maintainer: electronjs.org
|
||||
category: Utility
|
||||
appImage:
|
||||
artifactName: ${name}-${version}.${ext}
|
||||
npmRebuild: false
|
||||
publish:
|
||||
provider: generic
|
||||
url: https://example.com/auto-updates
|
||||
@@ -0,0 +1,72 @@
|
||||
const { execSync } = require('child_process')
|
||||
|
||||
function getBuildVersion() {
|
||||
if (process.env.BUILD_VERSION) return process.env.BUILD_VERSION
|
||||
try {
|
||||
return execSync('git rev-parse --short HEAD').toString().trim()
|
||||
} catch {
|
||||
return 'unknown'
|
||||
}
|
||||
}
|
||||
|
||||
process.env.BUILD_VERSION = getBuildVersion()
|
||||
|
||||
/**
|
||||
* @type {import('electron-builder').Configuration}
|
||||
*/
|
||||
module.exports = {
|
||||
appId: 'cafe.kirameki.discord-rpc-relay',
|
||||
productName: 'Discord RPC Relay',
|
||||
directories: {
|
||||
buildResources: 'build'
|
||||
},
|
||||
files: [
|
||||
'!**/.vscode/*',
|
||||
'!src/*',
|
||||
'!electron.vite.config.{js,ts,mjs,cjs}',
|
||||
'!electronBuilder.js',
|
||||
'!{.eslintcache,eslint.config.mjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}',
|
||||
'!{.env,.env.*,.npmrc,pnpm-lock.yaml}',
|
||||
'!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
|
||||
],
|
||||
asarUnpack: ['resources/**'],
|
||||
win: {
|
||||
executableName: 'discord-rpc-relay'
|
||||
},
|
||||
nsis: {
|
||||
artifactName: '${name}-${env.BUILD_VERSION}-setup.${ext}',
|
||||
shortcutName: '${productName}',
|
||||
uninstallDisplayName: '${productName}',
|
||||
createDesktopShortcut: 'always'
|
||||
},
|
||||
mac: {
|
||||
entitlementsInherit: 'build/entitlements.mac.plist',
|
||||
extendInfo: [
|
||||
{ NSCameraUsageDescription: "Application requests access to the device's camera." },
|
||||
{ NSMicrophoneUsageDescription: "Application requests access to the device's microphone." },
|
||||
{
|
||||
NSDocumentsFolderUsageDescription:
|
||||
"Application requests access to the user's Documents folder."
|
||||
},
|
||||
{
|
||||
NSDownloadsFolderUsageDescription:
|
||||
"Application requests access to the user's Downloads folder."
|
||||
}
|
||||
],
|
||||
notarize: false
|
||||
},
|
||||
dmg: {
|
||||
artifactName: '${name}-${env.BUILD_VERSION}.${ext}'
|
||||
},
|
||||
linux: {
|
||||
target: ['AppImage', 'deb'],
|
||||
maintainer: 'electronjs.org',
|
||||
category: 'Utility',
|
||||
artifactName: '${name}-${env.BUILD_VERSION}.${ext}'
|
||||
},
|
||||
npmRebuild: false,
|
||||
publish: {
|
||||
provider: 'generic',
|
||||
url: 'https://example.com/auto-updates'
|
||||
}
|
||||
}
|
||||
+5
-4
@@ -16,10 +16,10 @@
|
||||
"dev": "electron-vite dev",
|
||||
"build": "npm run typecheck && electron-vite build",
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"build:unpack": "npm run build && electron-builder --dir",
|
||||
"build:win": "npm run build && electron-builder --win",
|
||||
"build:mac": "npm run build && electron-builder --mac",
|
||||
"build:linux": "npm run build && electron-builder --linux"
|
||||
"build:unpack": "npm run build && electron-builder --config electronBuilder.js --dir",
|
||||
"build:win": "npm run build && electron-builder --config electronBuilder.js --win",
|
||||
"build:mac": "npm run build && electron-builder --config electronBuilder.js --mac",
|
||||
"build:linux": "npm run build && electron-builder --config electronBuilder.js --linux"
|
||||
},
|
||||
"dependencies": {
|
||||
"@electron-toolkit/preload": "^3.0.2",
|
||||
@@ -50,6 +50,7 @@
|
||||
"pnpm": {
|
||||
"onlyBuiltDependencies": [
|
||||
"electron",
|
||||
"electron-winstaller",
|
||||
"esbuild",
|
||||
"koffi"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user