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:
|
tags:
|
||||||
- 'v*'
|
- 'v*'
|
||||||
pull_request:
|
pull_request:
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -41,9 +40,6 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install --frozen-lockfile
|
run: pnpm install --frozen-lockfile
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: pnpm ${{ matrix.build-script }}
|
|
||||||
|
|
||||||
- name: Set artifact version
|
- name: Set artifact version
|
||||||
id: version
|
id: version
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -54,8 +50,13 @@ jobs:
|
|||||||
echo "value=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
|
echo "value=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
env:
|
||||||
|
BUILD_VERSION: ${{ steps.version.outputs.value }}
|
||||||
|
run: pnpm ${{ matrix.build-script }}
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v5
|
uses: actions/upload-artifact@v6
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.os }}-${{ steps.version.outputs.value }}
|
name: ${{ matrix.os }}-${{ steps.version.outputs.value }}
|
||||||
path: |
|
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",
|
"dev": "electron-vite dev",
|
||||||
"build": "npm run typecheck && electron-vite build",
|
"build": "npm run typecheck && electron-vite build",
|
||||||
"postinstall": "electron-builder install-app-deps",
|
"postinstall": "electron-builder install-app-deps",
|
||||||
"build:unpack": "npm run build && electron-builder --dir",
|
"build:unpack": "npm run build && electron-builder --config electronBuilder.js --dir",
|
||||||
"build:win": "npm run build && electron-builder --win",
|
"build:win": "npm run build && electron-builder --config electronBuilder.js --win",
|
||||||
"build:mac": "npm run build && electron-builder --mac",
|
"build:mac": "npm run build && electron-builder --config electronBuilder.js --mac",
|
||||||
"build:linux": "npm run build && electron-builder --linux"
|
"build:linux": "npm run build && electron-builder --config electronBuilder.js --linux"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron-toolkit/preload": "^3.0.2",
|
"@electron-toolkit/preload": "^3.0.2",
|
||||||
@@ -50,6 +50,7 @@
|
|||||||
"pnpm": {
|
"pnpm": {
|
||||||
"onlyBuiltDependencies": [
|
"onlyBuiltDependencies": [
|
||||||
"electron",
|
"electron",
|
||||||
|
"electron-winstaller",
|
||||||
"esbuild",
|
"esbuild",
|
||||||
"koffi"
|
"koffi"
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user