Skip to content

Commit 545aa67

Browse files
authored
chore: Use @vitejs/release-scripts (#87)
1 parent 105808c commit 545aa67

File tree

5 files changed

+53
-381
lines changed

5 files changed

+53
-381
lines changed

package.json

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,12 @@
3232
},
3333
"devDependencies": {
3434
"@types/babel__core": "^7.20.0",
35+
"@types/execa": "^2.0.0",
3536
"@types/fs-extra": "^11.0.1",
36-
"@types/minimist": "^1.2.2",
3737
"@types/node": "^18.11.18",
38-
"@types/picomatch": "^2.3.0",
39-
"@types/prompts": "^2.4.2",
40-
"@types/semver": "^7.3.13",
4138
"@typescript-eslint/eslint-plugin": "^5.48.2",
4239
"@typescript-eslint/parser": "^5.48.2",
40+
"@vitejs/release-scripts": "^1.0.4",
4341
"conventional-changelog-cli": "^2.2.2",
4442
"eslint": "^8.32.0",
4543
"eslint-define-config": "^1.14.0",
@@ -49,14 +47,11 @@
4947
"execa": "^6.1.0",
5048
"fs-extra": "^11.1.0",
5149
"lint-staged": "^13.1.0",
52-
"minimist": "^1.2.7",
5350
"npm-run-all": "^4.1.5",
5451
"picocolors": "^1.0.0",
5552
"playwright-chromium": "^1.29.2",
5653
"prettier": "2.8.3",
57-
"prompts": "^2.4.2",
5854
"rollup": "^3.7.0",
59-
"semver": "^7.3.8",
6055
"simple-git-hooks": "^2.8.1",
6156
"tsx": "^3.12.2",
6257
"typescript": "^4.6.4",

pnpm-lock.yaml

Lines changed: 21 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/publishCI.ts

Lines changed: 3 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,5 @@
1-
import semver from 'semver'
2-
import {
3-
args,
4-
getActiveVersion,
5-
getPackageInfo,
6-
publishPackage,
7-
step,
8-
} from './releaseUtils'
1+
import { publish } from '@vitejs/release-scripts'
92

10-
async function main() {
11-
const tag = args._[0]
12-
13-
if (!tag) {
14-
throw new Error('No tag specified')
15-
}
16-
17-
let pkgName = 'plugin-react'
18-
let version
19-
20-
if (tag.includes('@')) [pkgName, version] = tag.split('@')
21-
else version = tag
22-
23-
if (version.startsWith('v')) version = version.slice(1)
24-
25-
const { currentVersion, pkgDir } = getPackageInfo(pkgName)
26-
if (currentVersion !== version)
27-
throw new Error(
28-
`Package version from tag "${version}" mismatches with current version "${currentVersion}"`,
29-
)
30-
31-
const activeVersion = await getActiveVersion(pkgName)
32-
33-
step('Publishing package...')
34-
const releaseTag = version.includes('beta')
35-
? 'beta'
36-
: version.includes('alpha')
37-
? 'alpha'
38-
: semver.lt(currentVersion, activeVersion)
39-
? 'previous'
40-
: undefined
41-
await publishPackage(pkgDir, releaseTag)
42-
}
43-
44-
main().catch((err) => {
45-
console.error(err)
46-
process.exit(1)
3+
publish({
4+
defaultPackage: 'plugin-react',
475
})

scripts/release.ts

Lines changed: 27 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,29 @@
1-
import prompts from 'prompts'
2-
import semver from 'semver'
3-
import colors from 'picocolors'
4-
import {
5-
args,
6-
getPackageInfo,
7-
getVersionChoices,
8-
isDryRun,
9-
logRecentCommits,
10-
packages,
11-
run,
12-
runIfNotDry,
13-
step,
14-
updateVersion,
15-
} from './releaseUtils'
16-
17-
async function main(): Promise<void> {
18-
let targetVersion: string | undefined
19-
20-
const { pkg }: { pkg: string } = await prompts({
21-
type: 'select',
22-
name: 'pkg',
23-
message: 'Select package',
24-
choices: packages.map((i) => ({ value: i, title: i })),
25-
})
26-
27-
if (!pkg) return
28-
29-
await logRecentCommits(pkg)
30-
31-
const { currentVersion, pkgName, pkgPath, pkgDir } = getPackageInfo(pkg)
32-
33-
if (!targetVersion) {
34-
const { release }: { release: string } = await prompts({
35-
type: 'select',
36-
name: 'release',
37-
message: 'Select release type',
38-
choices: getVersionChoices(currentVersion),
39-
})
40-
41-
if (release === 'custom') {
42-
const res: { version: string } = await prompts({
43-
type: 'text',
44-
name: 'version',
45-
message: 'Input custom version',
46-
initial: currentVersion,
47-
})
48-
targetVersion = res.version
49-
} else {
50-
targetVersion = release
51-
}
52-
}
53-
54-
if (!semver.valid(targetVersion)) {
55-
throw new Error(`invalid target version: ${targetVersion}`)
56-
}
57-
58-
const tag = `${pkgName}@${targetVersion}`
59-
60-
if (targetVersion.includes('beta') && !args.tag) {
61-
args.tag = 'beta'
62-
}
63-
if (targetVersion.includes('alpha') && !args.tag) {
64-
args.tag = 'alpha'
65-
}
66-
67-
const { yes }: { yes: boolean } = await prompts({
68-
type: 'confirm',
69-
name: 'yes',
70-
message: `Releasing ${colors.yellow(tag)} Confirm?`,
71-
})
72-
73-
if (!yes) {
74-
return
75-
}
76-
77-
step('\nUpdating package version...')
78-
updateVersion(pkgPath, targetVersion)
79-
80-
step('\nGenerating changelog...')
81-
await run(
82-
'npx',
83-
[
84-
'conventional-changelog',
85-
'-p',
86-
'angular',
87-
'-i',
88-
'CHANGELOG.md',
89-
'-s',
90-
'--commit-path',
91-
'.',
92-
'--lerna-package',
93-
pkgName,
94-
],
95-
{ cwd: pkgDir },
96-
)
97-
98-
const { stdout } = await run('git', ['diff'], { stdio: 'pipe' })
99-
if (stdout) {
100-
step('\nCommitting changes...')
101-
await runIfNotDry('git', ['add', '-A'])
102-
await runIfNotDry('git', ['commit', '-m', `release: ${tag}`])
103-
await runIfNotDry('git', ['tag', tag])
104-
} else {
105-
console.log('No changes to commit.')
106-
return
107-
}
108-
109-
step('\nPushing to GitHub...')
110-
await runIfNotDry('git', ['push', 'origin', `refs/tags/${tag}`])
111-
await runIfNotDry('git', ['push'])
112-
113-
if (isDryRun) {
114-
console.log(`\nDry run finished - run git diff to see package changes.`)
115-
} else {
116-
console.log(
117-
colors.green(
118-
'\nPushed, publishing should starts shortly on CI.\nhttps://github.com/vitejs/vite-plugin-react/actions/workflows/publish.yml',
119-
),
1+
import { release } from '@vitejs/release-scripts'
2+
import { logRecentCommits, run } from './releaseUtils'
3+
4+
release({
5+
repo: 'vite-plugin-react',
6+
packages: ['plugin-react'],
7+
toTag: (pkg, version) => `${pkg}@${version}`,
8+
logChangelog: async (pkgName) => {
9+
await logRecentCommits(pkgName)
10+
},
11+
generateChangelog: async (pkgName) => {
12+
await run(
13+
'npx',
14+
[
15+
'conventional-changelog',
16+
'-p',
17+
'angular',
18+
'-i',
19+
'CHANGELOG.md',
20+
'-s',
21+
'--commit-path',
22+
'.',
23+
'--lerna-package',
24+
pkgName,
25+
],
26+
{ cwd: `packages/${pkgName}` },
12027
)
121-
}
122-
123-
console.log()
124-
}
125-
126-
main().catch((err) => {
127-
console.error(err)
128-
process.exit(1)
28+
},
12929
})

0 commit comments

Comments
 (0)