55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
const core = require('@actions/core')
|
|
const conventionalRecommendedBump = require('conventional-recommended-bump')
|
|
|
|
const git = require('./helpers/git')
|
|
const packageJson = require('./helpers/packageJson')
|
|
const generateChangelog = require('./helpers/generateChangelog')
|
|
|
|
async function run() {
|
|
try {
|
|
const commitMessage = core.getInput('git-message')
|
|
const tagPrefix = core.getInput('tag-prefix')
|
|
const preset = core.getInput('preset')
|
|
const outputFile = core.getInput('output-file')
|
|
const releaseCount = core.getInput('changelog-release-count')
|
|
|
|
core.info(`Using "${preset}" preset`)
|
|
|
|
conventionalRecommendedBump({ preset }, async(error, recommendation) => {
|
|
if (error) {
|
|
core.setFailed(error.message)
|
|
|
|
} else {
|
|
core.info(`Recommended release type: ${recommendation.releaseType}`)
|
|
|
|
// Bump the version in the package.json
|
|
const jsonPackage = packageJson.bump(
|
|
packageJson.get(),
|
|
recommendation.releaseType,
|
|
)
|
|
|
|
// Update the package.json file
|
|
packageJson.update(jsonPackage)
|
|
|
|
core.info(`New version: ${jsonPackage.version}`)
|
|
|
|
// Generate the changelog
|
|
await generateChangelog(tagPrefix, preset, jsonPackage, outputFile, releaseCount)
|
|
|
|
core.info('Push all changes')
|
|
|
|
// Add changed files to git
|
|
await git.add('.')
|
|
await git.commit(commitMessage.replace('{version}', `${tagPrefix}${jsonPackage.version}`))
|
|
await git.createTag(`${tagPrefix}${jsonPackage.version}`)
|
|
await git.push()
|
|
}
|
|
})
|
|
|
|
} catch (error) {
|
|
core.setFailed(error.message)
|
|
}
|
|
}
|
|
|
|
run()
|