diff --git a/README.md b/README.md index 08ff54f..5f66251 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,17 @@ Prefix that is used for the git tag (optional). Example: tag-prefix: 'v' ``` +#### **tag-suffix:** +Suffix that is used for the git tag (optional). Example: +```yaml +- name: 'Automated Version Bump' + uses: 'phips28/gh-action-bump-version@master' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag-suffix: '-beta' +``` + #### **skip-tag:** The tag is not added to the git repository (optional). Example: ```yaml diff --git a/action.yml b/action.yml index 868df0a..dee53c2 100644 --- a/action.yml +++ b/action.yml @@ -11,6 +11,10 @@ inputs: description: 'Prefix that is used for the git tag' default: '' required: false + tag-suffix: + description: 'Suffix that is used for the git tag' + default: '' + required: false version-type: description: 'Overrides version type from commit message' default: '' diff --git a/index.js b/index.js index 875e18d..6d6cb51 100644 --- a/index.js +++ b/index.js @@ -32,14 +32,16 @@ const pkg = getPackageJson(); const versionType = process.env['INPUT_VERSION-TYPE']; const tagPrefix = process.env['INPUT_TAG-PREFIX'] || ''; + 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 commitMessage = process.env['INPUT_COMMIT-MESSAGE'] || 'ci: version bump to {{version}}'; console.log('commit messages:', messages); const bumpPolicy = process.env['INPUT_BUMP-POLICY'] || 'all'; - const commitMessageRegex = new RegExp(commitMessage.replace(/{{version}}/g, `${tagPrefix}\\d+\\.\\d+\\.\\d+`), 'ig'); + const commitMessageRegex = new RegExp(commitMessage.replace(/{{version}}/g, `${tagPrefix}\\d+\\.\\d+\\.\\d+${tagSuffix}`), 'ig'); let isVersionBump = false; @@ -186,7 +188,7 @@ const pkg = getPackageJson(); console.log('current 1:', current, '/', 'version:', version); let newVersion = execSync(`npm version --git-tag-version=false ${version}`).toString().trim().replace(/^v/, ''); console.log('newVersion 1:', newVersion); - newVersion = `${tagPrefix}${newVersion}`; + newVersion = `${tagPrefix}${newVersion}${tagSuffix}`; if (process.env['INPUT_SKIP-COMMIT'] !== 'true') { await runInWorkspace('git', ['commit', '-a', '-m', commitMessage.replace(/{{version}}/g, newVersion)]); } @@ -205,8 +207,8 @@ const pkg = getPackageJson(); // https://github.com/phips28/gh-action-bump-version/issues/166#issuecomment-1142640018 newVersion = newVersion.split(/\n/)[1] || newVersion; console.log('newVersion 2:', newVersion); - newVersion = `${tagPrefix}${newVersion}`; - console.log(`newVersion after merging tagPrefix+newVersion: ${newVersion}`); + newVersion = `${tagPrefix}${newVersion}${tagSuffix}`; + console.log(`newVersion after merging tagPrefix+newVersion+tagSuffix: ${newVersion}`); // Using sh as command instead of directly echo to be able to use file redirection await runInWorkspace('sh', ['-c', `echo "newTag=${newVersion}" >> $GITHUB_OUTPUT`]); try { diff --git a/tests/end-to-end/config.yaml b/tests/end-to-end/config.yaml index afd901e..8fd4e98 100644 --- a/tests/end-to-end/config.yaml +++ b/tests/end-to-end/config.yaml @@ -131,6 +131,49 @@ suites: expected: version: 4.1.2 tag: v4.1.2 + - name: custom-tag-suffix + yaml: + name: Bump Version (Custom Tag Suffix) + on: + push: + jobs: + bump-version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - id: version-bump + uses: ./action + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag-suffix: '-beta' + tests: + - message: no keywords + expected: + version: 4.1.2 + tag: 4.1.2-beta + - name: custom-tag-prefix-with-suffix + yaml: + name: Bump Version (Custom Tag Prefix With Suffix) + on: + push: + jobs: + bump-version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - id: version-bump + uses: ./action + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag-prefix: 'v' + tag-suffix: '-beta' + tests: + - message: no keywords + expected: + version: 4.1.2 + tag: v4.1.2-beta - name: target-branch yaml: name: Bump Version (Target Branch)