feat: Added outputs
parent
6bfb377c32
commit
770b36d584
|
@ -8,11 +8,23 @@ jobs:
|
|||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- run: yarn --production
|
||||
- run: git add node_modules -f
|
||||
|
||||
- uses: ./
|
||||
- name: Generate changelog
|
||||
id: changelog
|
||||
uses: ./
|
||||
with:
|
||||
github-token: ${{ secrets.github_token }}
|
||||
|
||||
- name: Create Release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.github_token }}
|
||||
with:
|
||||
tag_name: ${{ steps.changelog.outputs.tag }}
|
||||
release_name: ${{ steps.changelog.outputs.tag }}
|
||||
body: ${{ steps.changelog.outputs.changelog }}
|
||||
|
|
|
@ -43,3 +43,11 @@ inputs:
|
|||
description: 'The path to the package.json to use'
|
||||
default: './package.json'
|
||||
required: false
|
||||
|
||||
outputs:
|
||||
changelog:
|
||||
description: 'The generated changelog for the new version'
|
||||
version:
|
||||
description: 'The new version'
|
||||
tag:
|
||||
description: 'The name of the generated tag'
|
||||
|
|
|
@ -1,11 +1,32 @@
|
|||
const fs = require('fs')
|
||||
const conventionalChangelog = require('conventional-changelog')
|
||||
|
||||
module.exports = (tagPrefix, preset, jsonPackage, fileName, releaseCount) => new Promise((resolve) => {
|
||||
module.exports.generateStringChangelog = (tagPrefix, preset, jsonPackage, releaseCount) => new Promise((resolve, reject) => {
|
||||
const changelogStream = conventionalChangelog({
|
||||
preset,
|
||||
releaseCount: parseInt(releaseCount, 10),
|
||||
tagPrefix
|
||||
tagPrefix,
|
||||
},
|
||||
{
|
||||
version: jsonPackage.version,
|
||||
currentTag: `${tagPrefix}${jsonPackage.version}`,
|
||||
},
|
||||
)
|
||||
|
||||
let changelog = ''
|
||||
|
||||
changelogStream
|
||||
.on('data', (data) => {
|
||||
changelog += data.toString()
|
||||
})
|
||||
.on('end', () => resolve(changelog))
|
||||
})
|
||||
|
||||
module.exports.generateFileChangelog = (tagPrefix, preset, jsonPackage, fileName, releaseCount) => new Promise((resolve) => {
|
||||
const changelogStream = conventionalChangelog({
|
||||
preset,
|
||||
releaseCount: parseInt(releaseCount, 10),
|
||||
tagPrefix,
|
||||
},
|
||||
{
|
||||
version: jsonPackage.version,
|
||||
|
|
16
src/index.js
16
src/index.js
|
@ -3,7 +3,7 @@ const conventionalRecommendedBump = require('conventional-recommended-bump')
|
|||
|
||||
const git = require('./helpers/git')
|
||||
const packageJson = require('./helpers/packageJson')
|
||||
const generateChangelog = require('./helpers/generateChangelog')
|
||||
const changelog = require('./helpers/generateChangelog')
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
|
@ -42,8 +42,15 @@ async function run() {
|
|||
|
||||
core.info(`New version: ${jsonPackage.version}`)
|
||||
|
||||
// If output file === 'false' we don't write it to file
|
||||
if (outputFile !== 'false') {
|
||||
// Generate the changelog
|
||||
await generateChangelog(tagPrefix, preset, jsonPackage, outputFile, releaseCount)
|
||||
await changelog.generateFileChangelog(tagPrefix, preset, jsonPackage, outputFile, releaseCount)
|
||||
}
|
||||
|
||||
const stringChangelog = await changelog.generateStringChangelog(tagPrefix, preset, jsonPackage, 1)
|
||||
core.info('Changelog generated')
|
||||
core.info(stringChangelog)
|
||||
|
||||
core.info('Push all changes')
|
||||
|
||||
|
@ -52,6 +59,11 @@ async function run() {
|
|||
await git.commit(commitMessage.replace('{version}', `${tagPrefix}${jsonPackage.version}`))
|
||||
await git.createTag(`${tagPrefix}${jsonPackage.version}`)
|
||||
await git.push()
|
||||
|
||||
// Set outputs so other actions (for example actions/create-release) can use it
|
||||
core.setOutput('changelog', stringChangelog)
|
||||
core.setOutput('version', jsonPackage.version)
|
||||
core.setOutput('tag', `${tagPrefix}${jsonPackage.version}`)
|
||||
}
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in New Issue