diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 01d096c..ffe2e5e 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -22,6 +22,7 @@ jobs: with: node-version: 12 - name: "Automated Version Bump" + id: version-bump uses: "phips28/gh-action-bump-version@master" with: tag-prefix: '' @@ -29,3 +30,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: "cat package.json" run: cat ./package.json + - name: 'Output Step' + env: + NEW_TAG: ${{ steps.version-bump.outputs.newTag }} + run: echo "new tag $NEW_TAG" diff --git a/action.yml b/action.yml index 9af8969..09b163b 100644 --- a/action.yml +++ b/action.yml @@ -35,3 +35,6 @@ inputs: description: 'Set a default version bump to use' default: 'patch' required: false +outputs: + newTag: + description: 'The newly created tag' diff --git a/index.js b/index.js index 6943420..2ebbdd0 100644 --- a/index.js +++ b/index.js @@ -19,7 +19,7 @@ Toolkit.run(async tools => { const messages = event.commits ? event.commits.map(commit => commit.message + '\n' + commit.body) : [] const commitMessage = 'version bump to' - console.log('messages:', messages); + console.log('messages:', messages) const isVersionBump = messages.map(message => message.toLowerCase().includes(commitMessage)).includes(true) if (isVersionBump) { tools.exit.success('No action necessary!') @@ -31,25 +31,25 @@ Toolkit.run(async tools => { const patchWords = process.env['INPUT_PATCH-WORDING'].split(',') const preReleaseWords = process.env['INPUT_RC-WORDING'].split(',') - let version = process.env['INPUT_DEFAULT'] || 'patch' - let foundWord = null; - + let version = process.env.INPUT_DEFAULT || 'patch' + let foundWord = null + if (messages.some( message => /^([a-zA-Z]+)(\(.+\))?(\!)\:/.test(message) || majorWords.some(word => message.includes(word)))) { version = 'major' } else if (messages.some(message => minorWords.some(word => message.includes(word)))) { version = 'minor' } else if (messages.some(message => preReleaseWords.some(word => { - if (message.includes(word)) { - foundWord = word; - return true; - } else { - return false; - } - } - ))) { - const preid = foundWord.split("-")[1]; - version = `prerelease --preid=${preid}`; + if (message.includes(word)) { + foundWord = word + return true + } else { + return false + } + } + ))) { + const preid = foundWord.split('-')[1] + version = `prerelease --preid=${preid}` } else if (patchWords && Array.isArray(patchWords)) { if (!messages.some(message => patchWords.some(word => message.includes(word)))) { version = null @@ -97,6 +97,7 @@ Toolkit.run(async tools => { newVersion = execSync(`npm version --git-tag-version=false ${version}`).toString().trim() newVersion = `${process.env['INPUT_TAG-PREFIX']}${newVersion}` console.log('new version:', newVersion) + console.log(`::set-output name=newTag::${newVersion}`) try { // to support "actions/checkout@v1" await tools.runInWorkspace('git', ['commit', '-a', '-m', `ci: ${commitMessage} ${newVersion}`])