mirror of https://github.com/YunYouJun/valaxy
ci: simplify release script
This commit is contained in:
parent
864fdfd271
commit
63bbce7c00
|
@ -63,7 +63,7 @@
|
|||
"@types/node": "^20.11.0",
|
||||
"@types/prompts": "^2.4.9",
|
||||
"@types/resolve": "^1.20.6",
|
||||
"@types/semver": "^7.5.6",
|
||||
"bumpp": "^9.2.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"cypress": "^13.6.2",
|
||||
"eslint": "^8.56.0",
|
||||
|
|
|
@ -28,14 +28,14 @@ const { t } = useI18n()
|
|||
@click="open = !open"
|
||||
>
|
||||
<span class="text">
|
||||
{{ t(item.text) }}
|
||||
{{ item.text.includes('.') ? t(item.text) : item.text }}
|
||||
</span>
|
||||
<div i-ri-arrow-drop-down-line />
|
||||
</button>
|
||||
|
||||
<div class="menu grow" flex="~ col" items="start">
|
||||
<AppLink v-for="itemLink in item.items" :key="itemLink.text" class="menu-item" p="x-3" :to="itemLink.link">
|
||||
{{ t(itemLink.text) }}
|
||||
{{ itemLink.text.includes('.') ? t(itemLink.text) : itemLink.text }}
|
||||
</AppLink>
|
||||
</div>
|
||||
</div>
|
||||
|
|
149
pnpm-lock.yaml
149
pnpm-lock.yaml
|
@ -44,6 +44,9 @@ importers:
|
|||
'@types/semver':
|
||||
specifier: ^7.5.6
|
||||
version: 7.5.6
|
||||
bumpp:
|
||||
specifier: ^9.2.1
|
||||
version: 9.2.1
|
||||
cross-env:
|
||||
specifier: ^7.0.3
|
||||
version: 7.0.3
|
||||
|
@ -2822,6 +2825,16 @@ packages:
|
|||
'@jridgewell/resolve-uri': 3.1.1
|
||||
'@jridgewell/sourcemap-codec': 1.4.15
|
||||
|
||||
/@jsdevtools/ez-spawn@3.0.4:
|
||||
resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
call-me-maybe: 1.0.2
|
||||
cross-spawn: 7.0.3
|
||||
string-argv: 0.3.2
|
||||
type-detect: 4.0.8
|
||||
dev: true
|
||||
|
||||
/@mdit-vue/plugin-component@2.0.0:
|
||||
resolution: {integrity: sha512-cTRxlocav/+mfgDcp0P2z/gWuWBez+iNuN4D+b74LpX4AR6UAx2ZvWtCrUZ8VXrO4eCt1/G0YC/Af7mpIb3aoQ==}
|
||||
dependencies:
|
||||
|
@ -4965,6 +4978,19 @@ packages:
|
|||
semver: 7.5.4
|
||||
dev: true
|
||||
|
||||
/bumpp@9.2.1:
|
||||
resolution: {integrity: sha512-mq6/e8+bnIsOMy1VceTLC49WucMIZqd2nYn0e7Et5LhTO3yYQ8OWJsTl/B+uJDs5eywZmJ4Yt1WTEd2HCI35pw==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@jsdevtools/ez-spawn': 3.0.4
|
||||
c12: 1.6.1
|
||||
cac: 6.7.14
|
||||
fast-glob: 3.3.2
|
||||
prompts: 2.4.2
|
||||
semver: 7.5.4
|
||||
dev: true
|
||||
|
||||
/bundle-name@3.0.0:
|
||||
resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -4998,6 +5024,22 @@ packages:
|
|||
engines: {node: '>= 0.8'}
|
||||
dev: true
|
||||
|
||||
/c12@1.6.1:
|
||||
resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==}
|
||||
dependencies:
|
||||
chokidar: 3.5.3
|
||||
defu: 6.1.4
|
||||
dotenv: 16.3.1
|
||||
giget: 1.2.1
|
||||
jiti: 1.21.0
|
||||
mlly: 1.4.2
|
||||
ohash: 1.1.3
|
||||
pathe: 1.1.1
|
||||
perfect-debounce: 1.0.0
|
||||
pkg-types: 1.0.3
|
||||
rc9: 2.1.1
|
||||
dev: true
|
||||
|
||||
/cac@6.7.14:
|
||||
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -5015,6 +5057,10 @@ packages:
|
|||
set-function-length: 1.1.1
|
||||
dev: true
|
||||
|
||||
/call-me-maybe@1.0.2:
|
||||
resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
|
||||
dev: true
|
||||
|
||||
/callsites@3.1.0:
|
||||
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
@ -5122,6 +5168,11 @@ packages:
|
|||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
|
||||
/chownr@2.0.0:
|
||||
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/ci-info@3.9.0:
|
||||
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -5770,7 +5821,6 @@ packages:
|
|||
|
||||
/destr@2.0.2:
|
||||
resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==}
|
||||
dev: false
|
||||
|
||||
/destroy@1.2.0:
|
||||
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
|
||||
|
@ -5831,6 +5881,11 @@ packages:
|
|||
domelementtype: 2.3.0
|
||||
domhandler: 5.0.3
|
||||
|
||||
/dotenv@16.3.1:
|
||||
resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
|
||||
engines: {node: '>=12'}
|
||||
dev: true
|
||||
|
||||
/duplexer@0.1.2:
|
||||
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
|
||||
|
||||
|
@ -6809,6 +6864,11 @@ packages:
|
|||
rimraf: 5.0.5
|
||||
dev: true
|
||||
|
||||
/flat@5.0.2:
|
||||
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/flatted@3.2.9:
|
||||
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
|
||||
dev: true
|
||||
|
@ -6917,6 +6977,13 @@ packages:
|
|||
universalify: 2.0.1
|
||||
dev: true
|
||||
|
||||
/fs-minipass@2.1.0:
|
||||
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
minipass: 3.3.6
|
||||
dev: true
|
||||
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||
dev: true
|
||||
|
@ -7025,6 +7092,20 @@ packages:
|
|||
assert-plus: 1.0.0
|
||||
dev: true
|
||||
|
||||
/giget@1.2.1:
|
||||
resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
citty: 0.1.5
|
||||
consola: 3.2.3
|
||||
defu: 6.1.4
|
||||
node-fetch-native: 1.6.1
|
||||
nypm: 0.3.4
|
||||
ohash: 1.1.3
|
||||
pathe: 1.1.1
|
||||
tar: 6.2.0
|
||||
dev: true
|
||||
|
||||
/glob-parent@5.1.2:
|
||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||
engines: {node: '>= 6'}
|
||||
|
@ -8458,6 +8539,18 @@ packages:
|
|||
/minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
|
||||
/minipass@3.3.6:
|
||||
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/minipass@5.0.0:
|
||||
resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/minipass@7.0.4:
|
||||
resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
|
@ -8467,10 +8560,24 @@ packages:
|
|||
resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==}
|
||||
dev: true
|
||||
|
||||
/minizlib@2.1.2:
|
||||
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
minipass: 3.3.6
|
||||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/mitt@3.0.1:
|
||||
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
|
||||
dev: false
|
||||
|
||||
/mkdirp@1.0.4:
|
||||
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/mkdist@1.4.0(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-LzzdzWDx6cWWPd8saIoO+kT5jnbijfeDaE6jZfmCYEi3YL2aJSyF23/tCFee/mDuh/ek1UQeSYdLeSa6oesdiw==}
|
||||
hasBin: true
|
||||
|
@ -8577,6 +8684,10 @@ packages:
|
|||
resolution: {integrity: sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==}
|
||||
dev: false
|
||||
|
||||
/node-fetch-native@1.6.1:
|
||||
resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==}
|
||||
dev: true
|
||||
|
||||
/node-fetch@3.3.1:
|
||||
resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
|
@ -8656,6 +8767,17 @@ packages:
|
|||
resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
|
||||
dev: false
|
||||
|
||||
/nypm@0.3.4:
|
||||
resolution: {integrity: sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==}
|
||||
engines: {node: ^14.16.0 || >=16.10.0}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
citty: 0.1.5
|
||||
execa: 8.0.1
|
||||
pathe: 1.1.1
|
||||
ufo: 1.3.2
|
||||
dev: true
|
||||
|
||||
/object-assign@4.1.1:
|
||||
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
@ -8692,6 +8814,10 @@ packages:
|
|||
ufo: 1.3.2
|
||||
dev: false
|
||||
|
||||
/ohash@1.1.3:
|
||||
resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==}
|
||||
dev: true
|
||||
|
||||
/on-finished@2.4.1:
|
||||
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
@ -8942,7 +9068,6 @@ packages:
|
|||
|
||||
/perfect-debounce@1.0.0:
|
||||
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
|
||||
dev: false
|
||||
|
||||
/performance-now@2.1.0:
|
||||
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
|
||||
|
@ -9526,6 +9651,14 @@ packages:
|
|||
unpipe: 1.0.0
|
||||
dev: true
|
||||
|
||||
/rc9@2.1.1:
|
||||
resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==}
|
||||
dependencies:
|
||||
defu: 6.1.4
|
||||
destr: 2.0.2
|
||||
flat: 5.0.2
|
||||
dev: true
|
||||
|
||||
/react-is@18.2.0:
|
||||
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
|
||||
dev: true
|
||||
|
@ -10612,6 +10745,18 @@ packages:
|
|||
strip-ansi: 6.0.1
|
||||
dev: true
|
||||
|
||||
/tar@6.2.0:
|
||||
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
chownr: 2.0.0
|
||||
fs-minipass: 2.1.0
|
||||
minipass: 5.0.0
|
||||
minizlib: 2.1.2
|
||||
mkdirp: 1.0.4
|
||||
yallist: 4.0.0
|
||||
dev: true
|
||||
|
||||
/temp-dir@2.0.0:
|
||||
resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
|
@ -1,73 +1,40 @@
|
|||
import process from 'node:process'
|
||||
import prompts from 'prompts'
|
||||
import semver from 'semver'
|
||||
import { yellow } from 'kolorist'
|
||||
import consola from 'consola'
|
||||
import { $ } from 'zx'
|
||||
|
||||
import { versionBump } from 'bumpp'
|
||||
|
||||
import minimist from 'minimist'
|
||||
import pkg from '../package.json'
|
||||
import { getVersionChoices, packages, updateTemplateVersions, updateVersion } from './utils'
|
||||
import { packages, updateTemplateVersions } from './utils'
|
||||
|
||||
const args = minimist(process.argv.slice(2))
|
||||
export const isDryRun = !!args.dry
|
||||
|
||||
async function main() {
|
||||
let targetVersion: string
|
||||
const { newVersion } = await versionBump({
|
||||
commit: false,
|
||||
push: false,
|
||||
tag: false,
|
||||
|
||||
const { release }: { release: string } = await prompts({
|
||||
type: 'select',
|
||||
name: 'release',
|
||||
message: 'Select release type',
|
||||
choices: getVersionChoices(pkg.version),
|
||||
files: [
|
||||
'package.json',
|
||||
|
||||
...packages.map(name => `packages/${name}/package.json`),
|
||||
],
|
||||
})
|
||||
|
||||
if (release === 'custom') {
|
||||
const res: { version: string } = await prompts({
|
||||
type: 'text',
|
||||
name: 'version',
|
||||
message: 'Input custom version',
|
||||
initial: pkg.version,
|
||||
})
|
||||
targetVersion = res.version
|
||||
}
|
||||
else {
|
||||
targetVersion = release
|
||||
}
|
||||
|
||||
if (!semver.valid(targetVersion))
|
||||
throw new Error(`invalid target version: ${targetVersion}`)
|
||||
|
||||
const { yes }: { yes: boolean } = await prompts({
|
||||
type: 'confirm',
|
||||
name: 'yes',
|
||||
message: `Releasing ${yellow(targetVersion)} Confirm?`,
|
||||
})
|
||||
|
||||
if (!yes)
|
||||
return
|
||||
|
||||
console.log()
|
||||
consola.info('Updating packages version...')
|
||||
await updateVersion('package.json', targetVersion)
|
||||
|
||||
await Promise.all(
|
||||
packages.map(name =>
|
||||
updateVersion(`packages/${name}/package.json`, targetVersion),
|
||||
),
|
||||
)
|
||||
|
||||
console.log()
|
||||
consola.info('Updating template version...')
|
||||
await updateTemplateVersions(targetVersion)
|
||||
consola.info(`Updating template version to ${yellow(newVersion)}...`)
|
||||
await updateTemplateVersions(newVersion)
|
||||
|
||||
if (!isDryRun) {
|
||||
console.log()
|
||||
consola.info('Committing changes...')
|
||||
console.log()
|
||||
await $`git add -A`
|
||||
await $`git commit -m "release: v${targetVersion}"`
|
||||
await $`git tag v${targetVersion}`
|
||||
await $`git commit -m "release: v${newVersion}"`
|
||||
await $`git tag v${newVersion}`
|
||||
|
||||
console.log()
|
||||
consola.info('Pushing to GitHub...')
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
import { join } from 'node:path'
|
||||
import { readFile, writeFile } from 'node:fs/promises'
|
||||
import type { ReleaseType } from 'semver'
|
||||
import semver from 'semver'
|
||||
import consola from 'consola'
|
||||
import { cyan, gray, yellow } from 'kolorist'
|
||||
|
||||
|
@ -35,55 +33,3 @@ export async function updateTemplateVersions(version: string) {
|
|||
await writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`)
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateVersion(pkgPath: string, version: string) {
|
||||
const pkg = JSON.parse(await readFile(pkgPath, 'utf-8'))
|
||||
consola.info(`${cyan(pkg.name)} ${gray(`v${pkg.version}`)} -> ${yellow(`v${version}`)}`)
|
||||
pkg.version = version
|
||||
await writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`)
|
||||
}
|
||||
|
||||
export function getVersionChoices(currentVersion: string) {
|
||||
const currentBeta = currentVersion.includes('beta')
|
||||
|
||||
const inc: (i: ReleaseType) => string = i =>
|
||||
semver.inc(currentVersion, i)!
|
||||
|
||||
const versionChoices = [
|
||||
{
|
||||
title: 'next',
|
||||
value: inc(currentBeta ? 'prerelease' : 'patch'),
|
||||
},
|
||||
...(currentBeta
|
||||
? [
|
||||
{
|
||||
title: 'stable',
|
||||
value: inc('patch'),
|
||||
},
|
||||
]
|
||||
: [
|
||||
{
|
||||
title: 'beta-minor',
|
||||
value: inc('preminor'),
|
||||
},
|
||||
{
|
||||
title: 'beta-major',
|
||||
value: inc('premajor'),
|
||||
},
|
||||
{
|
||||
title: 'minor',
|
||||
value: inc('minor'),
|
||||
},
|
||||
{
|
||||
title: 'major',
|
||||
value: inc('major'),
|
||||
},
|
||||
]),
|
||||
{ value: 'custom', title: 'custom' },
|
||||
].map((i) => {
|
||||
i.title = `${i.title} (${i.value})`
|
||||
return i
|
||||
})
|
||||
|
||||
return versionChoices
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue