update build script to select release type

This commit is contained in:
geekgeekrun
2024-10-26 14:56:43 +08:00
parent fa45d4ec35
commit 95e6842995
4 changed files with 267 additions and 26 deletions

View File

@@ -48,6 +48,8 @@
"@electron-toolkit/eslint-config": "^1.0.2",
"@electron-toolkit/eslint-config-ts": "^1.0.1",
"@electron-toolkit/tsconfig": "^1.0.1",
"@inquirer/prompts": "^7.0.1",
"@inquirer/select": "^4.0.1",
"@puppeteer/browsers": "^2.0.0",
"@rushstack/eslint-patch": "^1.7.1",
"@types/node": "^18.19.9",
@@ -70,7 +72,6 @@
"lodash-es": "^4.17.21",
"normalize.css": "^8.0.1",
"prettier": "^3.2.4",
"prompt-sync": "^4.2.0",
"sass": "^1.70.0",
"typescript": "^5.3.3",
"unocss": "^0.58.5",

View File

@@ -1,10 +1,25 @@
import increasePackageVersion from './steps/increase-package-version.mjs'
import releaseVersion from './steps/release-version.mjs'
import prompt from 'prompt-sync'
import { select } from '@inquirer/prompts'
const releaseTypeList = [
'prerelease',
'prepatch',
'patch',
'preminor',
'minor',
'premajor',
'major'
]
;(async () => {
const releaseType = prompt()(
'Enter the release type (default: prerelease, available: prerelease / prepatch / patch / preminor / minor / premajor / major): '
)
await increasePackageVersion(releaseType || 'prerelease')
const releaseType = await select({
message: 'Select the release type',
default: releaseTypeList[0],
choices: releaseTypeList.map((value) => ({
name: value,
value
}))
})
await increasePackageVersion(releaseType || releaseTypeList[0])
await releaseVersion()
})()

View File

@@ -15,7 +15,7 @@ export const getRuntimeConfig = () => fs.readFileSync(PATH_TO_BUILD_INFO_JSON)
/**
* @param {semver.ReleaseType} releaseType
*/
export default async function increasePackageVersion(releaseType = 'patch') {
export default async function increasePackageVersion(releaseType = 'prerelease') {
const runtimeConfig = JSON.parse(getRuntimeConfig().toString('utf-8'))
const packageInfo = JSON.parse(getPackageInfo().toString('utf-8'))
packageInfo.version = semver.inc(packageInfo.version, releaseType)

263
pnpm-lock.yaml generated
View File

@@ -151,6 +151,12 @@ importers:
'@electron-toolkit/tsconfig':
specifier: ^1.0.1
version: 1.0.1(@types/node@18.19.9)
'@inquirer/prompts':
specifier: ^7.0.1
version: 7.0.1(@types/node@18.19.9)
'@inquirer/select':
specifier: ^4.0.1
version: 4.0.1(@types/node@18.19.9)
'@puppeteer/browsers':
specifier: ^2.0.0
version: 2.0.0
@@ -217,9 +223,6 @@ importers:
prettier:
specifier: ^3.2.4
version: 3.2.4
prompt-sync:
specifier: ^4.2.0
version: 4.2.0
sass:
specifier: ^1.70.0
version: 1.70.0
@@ -1058,6 +1061,178 @@ packages:
- supports-color
dev: true
/@inquirer/checkbox@4.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-ehJjmNPdguajc1hStvjN7DJNVjwG5LC1mgGMGFjCmdkn2fxB2GtULftMnlaqNmvMdPpqdaSoOFpl86VkLtG4pQ==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/figures': 1.0.7
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
ansi-escapes: 4.3.2
yoctocolors-cjs: 2.1.2
dev: true
/@inquirer/confirm@5.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-6ycMm7k7NUApiMGfVc32yIPp28iPKxhGRMqoNDiUjq2RyTAkbs5Fx0TdzBqhabcKvniDdAAvHCmsRjnNfTsogw==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
dev: true
/@inquirer/core@10.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-KKTgjViBQUi3AAssqjUFMnMO3CM3qwCHvePV9EW+zTKGKafFGFF01sc1yOIYjLJ7QU52G/FbzKc+c01WLzXmVQ==}
engines: {node: '>=18'}
dependencies:
'@inquirer/figures': 1.0.7
'@inquirer/type': 3.0.0(@types/node@18.19.9)
ansi-escapes: 4.3.2
cli-width: 4.1.0
mute-stream: 2.0.0
signal-exit: 4.1.0
strip-ansi: 6.0.1
wrap-ansi: 6.2.0
yoctocolors-cjs: 2.1.2
transitivePeerDependencies:
- '@types/node'
dev: true
/@inquirer/editor@4.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-qAHHJ6hs343eNtCKgV2wV5CImFxYG8J1pl/YCeI5w9VoW7QpulRUU26+4NsMhjR6zDRjKBsH/rRjCIcaAOHsrg==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
external-editor: 3.1.0
dev: true
/@inquirer/expand@4.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-9anjpdc802YInXekwePsa5LWySzVMHbhVS6v6n5IJxrl8w09mODOeP69wZ1d0WrOvot2buQSmYp4lW/pq8y+zQ==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
yoctocolors-cjs: 2.1.2
dev: true
/@inquirer/figures@1.0.7:
resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==}
engines: {node: '>=18'}
dev: true
/@inquirer/input@4.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-m+SliZ2m43cDRIpAdQxfv5QOeAQCuhS8TGLvtzEP1An4IH1kBES4RLMRgE/fC+z29aN8qYG8Tq/eXQQKTYwqAg==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
dev: true
/@inquirer/number@3.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-gF3erqfm0snpwBjbyKXUUe17QJ7ebm49btXApajrM0rgCCoYX0o9W5NCuYNae87iPxaIJVjtuoQ42DX32IdbMA==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
dev: true
/@inquirer/password@4.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-D7zUuX4l4ZpL3D7/SWu9ibijP09jigwHi/gfUHLx5GMS5oXzuMfPV2xPMG1tskco4enTx70HA0VtMXecerpvbg==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
ansi-escapes: 4.3.2
dev: true
/@inquirer/prompts@7.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-cu2CpGC2hz7WTt2VBvdkzahDvYice6vYA/8Dm7Fy3tRNzKuQTF2EY3CV4H2GamveWE6tA2XzyXtbWX8+t4WMQg==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/checkbox': 4.0.1(@types/node@18.19.9)
'@inquirer/confirm': 5.0.1(@types/node@18.19.9)
'@inquirer/editor': 4.0.1(@types/node@18.19.9)
'@inquirer/expand': 4.0.1(@types/node@18.19.9)
'@inquirer/input': 4.0.1(@types/node@18.19.9)
'@inquirer/number': 3.0.1(@types/node@18.19.9)
'@inquirer/password': 4.0.1(@types/node@18.19.9)
'@inquirer/rawlist': 4.0.1(@types/node@18.19.9)
'@inquirer/search': 3.0.1(@types/node@18.19.9)
'@inquirer/select': 4.0.1(@types/node@18.19.9)
'@types/node': 18.19.9
dev: true
/@inquirer/rawlist@4.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-0LuMOgaWs7W8JNcbiKkoFwyWFDEeCmLqDCygF0hidQUVa6J5grFVRZxrpompiWDFM49Km2rf7WoZwRo1uf1yWQ==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
yoctocolors-cjs: 2.1.2
dev: true
/@inquirer/search@3.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-ehMqjiO0pAf+KtdONKeCLVy4i3fy3feyRRhDrvzWhiwB8JccgKn7eHFr39l+Nx/FaZAhr0YxIJvkK5NuNvG+Ww==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/figures': 1.0.7
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
yoctocolors-cjs: 2.1.2
dev: true
/@inquirer/select@4.0.1(@types/node@18.19.9):
resolution: {integrity: sha512-tVRatFRGU49bxFCKi/3P+C0E13KZduNFbWuHWRx0L2+jbiyKRpXgHp9qiRHWRk/KarhYBXzH/di6w3VQ5aJd5w==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@inquirer/core': 10.0.1(@types/node@18.19.9)
'@inquirer/figures': 1.0.7
'@inquirer/type': 3.0.0(@types/node@18.19.9)
'@types/node': 18.19.9
ansi-escapes: 4.3.2
yoctocolors-cjs: 2.1.2
dev: true
/@inquirer/type@3.0.0(@types/node@18.19.9):
resolution: {integrity: sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
dependencies:
'@types/node': 18.19.9
dev: true
/@isaacs/cliui@8.0.2:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
@@ -2180,9 +2355,11 @@ packages:
resolution: {integrity: sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==}
dev: true
/ansi-regex@4.1.1:
resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==}
engines: {node: '>=6'}
/ansi-escapes@4.3.2:
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.21.3
dev: true
/ansi-regex@5.0.1:
@@ -2556,6 +2733,10 @@ packages:
ansi-styles: 4.3.0
supports-color: 7.2.0
/chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
/chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
@@ -2627,6 +2808,11 @@ packages:
dev: true
optional: true
/cli-width@4.1.0:
resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
engines: {node: '>= 12'}
dev: true
/cliui@7.0.4:
resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
dependencies:
@@ -3404,6 +3590,15 @@ packages:
strip-final-newline: 2.0.0
dev: true
/external-editor@3.1.0:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
dependencies:
chardet: 0.7.0
iconv-lite: 0.4.24
tmp: 0.0.33
dev: true
/extract-zip@2.0.1:
resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
engines: {node: '>= 10.17.0'}
@@ -3948,6 +4143,13 @@ packages:
dev: true
optional: true
/iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
dev: true
/iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
@@ -4571,6 +4773,11 @@ packages:
resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
dev: true
/mute-stream@2.0.0:
resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==}
engines: {node: ^18.17.0 || >=20.5.0}
dev: true
/mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
dependencies:
@@ -4773,6 +4980,11 @@ packages:
type-check: 0.4.0
dev: true
/os-tmpdir@1.0.2:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
engines: {node: '>=0.10.0'}
dev: true
/p-cancelable@2.1.1:
resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
engines: {node: '>=8'}
@@ -4983,12 +5195,6 @@ packages:
err-code: 2.0.3
retry: 0.12.0
/prompt-sync@4.2.0:
resolution: {integrity: sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw==}
dependencies:
strip-ansi: 5.2.0
dev: true
/proxy-agent@6.3.1:
resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==}
engines: {node: '>= 14'}
@@ -5550,13 +5756,6 @@ packages:
safe-buffer: 5.2.1
dev: false
/strip-ansi@5.2.0:
resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==}
engines: {node: '>=6'}
dependencies:
ansi-regex: 4.1.1
dev: true
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -5708,6 +5907,13 @@ packages:
tmp: 0.2.1
dev: true
/tmp@0.0.33:
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
engines: {node: '>=0.6.0'}
dependencies:
os-tmpdir: 1.0.2
dev: true
/tmp@0.2.1:
resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
engines: {node: '>=8.17.0'}
@@ -5802,6 +6008,11 @@ packages:
engines: {node: '>=10'}
dev: true
/type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
dev: true
/typeorm@0.3.11(sqlite3@5.1.6)(ts-node@10.9.2):
resolution: {integrity: sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==}
engines: {node: '>= 12.9.0'}
@@ -6279,6 +6490,15 @@ packages:
string-width: 4.2.3
dev: false
/wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
dev: true
/wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
@@ -6408,3 +6628,8 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
dev: true
/yoctocolors-cjs@2.1.2:
resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==}
engines: {node: '>=18'}
dev: true