diff --git a/README.md b/README.md index 14c2621..63d2a0a 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,19 @@ Example: bump-policy: 'ignore' ``` +#### **check-last-commit-only:** + +Set check-last-commit-only to only read last commit's message (optional). Example: + +```yaml +- name: 'Automated Version Bump' + uses: 'phips28/gh-action-bump-version@master' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + check-last-commit-only: 'true' +``` + #### [DEPRECATED] **push:** **DEPRECATED** Set false you want to avoid pushing the new version tag/package.json. Example: ```yaml diff --git a/action.yml b/action.yml index dee53c2..badf092 100644 --- a/action.yml +++ b/action.yml @@ -70,6 +70,10 @@ inputs: description: 'Set version bump ignore policy' default: 'all' required: false + check-last-commit-only: + description: 'Check only last commit message' + default: 'false' + required: false push: description: '[DEPRECATED] Set to false to skip pushing the new tag' default: 'true' diff --git a/index.js b/index.js index 6d6cb51..7da1cf6 100644 --- a/index.js +++ b/index.js @@ -35,7 +35,17 @@ const pkg = getPackageJson(); const tagSuffix = process.env['INPUT_TAG-SUFFIX'] || ''; console.log('tagPrefix:', tagPrefix); console.log('tagSuffix:', tagSuffix); - const messages = event.commits ? event.commits.map((commit) => commit.message + '\n' + commit.body) : []; + + const checkLastCommitOnly = process.env['INPUT_CHECK-LAST-COMMIT-ONLY'] || 'false'; + + let messages = [] + if (checkLastCommitOnly === 'true') { + console.log('Only checking the last commit...'); + const commit = event.commits && event.commits.lengths > 0 ? event.commits[event.commits.length - 1] : null; + messages = commit ? [commit.message + '\n' + commit.body] : []; + } else { + messages = event.commits ? event.commits.map((commit) => commit.message + '\n' + commit.body) : []; + } const commitMessage = process.env['INPUT_COMMIT-MESSAGE'] || 'ci: version bump to {{version}}'; console.log('commit messages:', messages);