conventional-changelog-action/src/index.js

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()