feat: Added outputs
parent
6bfb377c32
commit
770b36d584
|
@ -8,11 +8,23 @@ jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- run: yarn --production
|
- run: yarn --production
|
||||||
- run: git add node_modules -f
|
- run: git add node_modules -f
|
||||||
|
|
||||||
- uses: ./
|
- name: Generate changelog
|
||||||
|
id: changelog
|
||||||
|
uses: ./
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.github_token }}
|
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'
|
description: 'The path to the package.json to use'
|
||||||
default: './package.json'
|
default: './package.json'
|
||||||
required: false
|
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 fs = require('fs')
|
||||||
const conventionalChangelog = require('conventional-changelog')
|
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({
|
const changelogStream = conventionalChangelog({
|
||||||
preset,
|
preset,
|
||||||
releaseCount: parseInt(releaseCount, 10),
|
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,
|
version: jsonPackage.version,
|
||||||
|
|
18
src/index.js
18
src/index.js
|
@ -3,7 +3,7 @@ const conventionalRecommendedBump = require('conventional-recommended-bump')
|
||||||
|
|
||||||
const git = require('./helpers/git')
|
const git = require('./helpers/git')
|
||||||
const packageJson = require('./helpers/packageJson')
|
const packageJson = require('./helpers/packageJson')
|
||||||
const generateChangelog = require('./helpers/generateChangelog')
|
const changelog = require('./helpers/generateChangelog')
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
try {
|
try {
|
||||||
|
@ -42,8 +42,15 @@ async function run() {
|
||||||
|
|
||||||
core.info(`New version: ${jsonPackage.version}`)
|
core.info(`New version: ${jsonPackage.version}`)
|
||||||
|
|
||||||
// Generate the changelog
|
// If output file === 'false' we don't write it to file
|
||||||
await generateChangelog(tagPrefix, preset, jsonPackage, outputFile, releaseCount)
|
if (outputFile !== 'false') {
|
||||||
|
// Generate the changelog
|
||||||
|
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')
|
core.info('Push all changes')
|
||||||
|
|
||||||
|
@ -52,6 +59,11 @@ async function run() {
|
||||||
await git.commit(commitMessage.replace('{version}', `${tagPrefix}${jsonPackage.version}`))
|
await git.commit(commitMessage.replace('{version}', `${tagPrefix}${jsonPackage.version}`))
|
||||||
await git.createTag(`${tagPrefix}${jsonPackage.version}`)
|
await git.createTag(`${tagPrefix}${jsonPackage.version}`)
|
||||||
await git.push()
|
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