1
1
mirror of https://github.com/leon-ai/leon.git synced 2024-12-19 06:41:33 +03:00
leon/scripts/release/prepare-release.js

37 lines
1.0 KiB
JavaScript
Raw Normal View History

import { LogHelper } from '@/helpers/log-helper'
import { LoaderHelper } from '@/helpers/loader-helper'
2019-02-10 15:26:50 +03:00
import updateVersion from './update-version'
import generateChangelog from './generate-changelog'
2019-02-10 15:26:50 +03:00
/**
* Main entry of the release preparation
2019-02-10 15:26:50 +03:00
*/
2022-09-03 14:12:41 +03:00
;(async () => {
LoaderHelper.start()
LogHelper.info('Preparing for release...')
2019-02-10 15:26:50 +03:00
const { argv } = process
const version = argv[2].toLowerCase()
2022-09-03 14:12:41 +03:00
const semverRegex =
/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/
2019-02-10 15:26:50 +03:00
if (version.match(semverRegex) !== null) {
try {
await updateVersion(version)
await generateChangelog(version)
LogHelper.success('Hooray! Leon is ready to be released!')
LoaderHelper.stop()
2019-02-10 15:26:50 +03:00
} catch (e) {
LogHelper.error(e)
LoaderHelper.stop()
2019-02-10 15:26:50 +03:00
}
} else {
LogHelper.error(
2022-09-03 14:12:41 +03:00
'The version number does match the Semantic Versioning rules (https://semver.org)'
)
LoaderHelper.stop()
2019-02-10 15:26:50 +03:00
}
})()