rsnext/scripts/check-is-release.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

27 lines
706 B
JavaScript
Raw Normal View History

const { execSync } = require('child_process')
const checkIsRelease = async () => {
let commitId = process.argv[2] || ''
// parse only the last string which should be version if
// it's a publish commit
const commitMsg = execSync(
`git log -n 1 --pretty='format:%B'${commitId ? ` ${commitId}` : ''}`
)
.toString()
.trim()
const versionString = commitMsg.split(' ').pop().trim()
const publishMsgRegex = /^v\d{1,}\.\d{1,}\.\d{1,}(-\w{1,}\.\d{1,})?$/
if (publishMsgRegex.test(versionString)) {
console.log(versionString)
process.exit(0)
} else {
console.log('not publish commit', { commitId, commitMsg, versionString })
process.exit(1)
}
}
checkIsRelease()