diff --git a/action.yml b/action.yml index 87e2e90..f0e9871 100644 --- a/action.yml +++ b/action.yml @@ -13,11 +13,11 @@ inputs: required: false default: "v" major_pattern: - description: "a string which, if present in a git commit, indicates that a change represents a major (breaking) change" + description: "A string which, if present in a git commit, indicates that a change represents a major (breaking) change" required: true default: "(MAJOR)" minor_pattern: - description: "a string which, if present in a git commit, indicates that a change represents a minor (feature) change" + description: "A string which, if present in a git commit, indicates that a change represents a minor (feature) change" required: true default: "(MINOR)" format: @@ -41,6 +41,8 @@ outputs: description: "An additional value indicating the number of commits for the current version" version: description: "The version result, in the format {major}.{minor}.{patch}" + version_tag: + description: "The version result with trailing zeros removed" changed: description: "Indicates whether there was a change since the last version if change_path was specified. If no change_path was specified this value will always be true since the entire repo is considered." runs: diff --git a/dist/index.js b/dist/index.js index 54959a6..a0e59e5 100644 --- a/dist/index.js +++ b/dist/index.js @@ -982,20 +982,31 @@ const setOutput = (major, minor, patch, increment, changed, branch, namespace) = version += `-${namespace}` } - const tag = tagPrefix + version; + let tag; + if (major === 0 || patch !== 0) { + // Always tag pre-release/major version 0 as full version + tag = `${tagPrefix}${major}.${minor}.${patch}`; + } else if (minor !== 0) { + tag = `${tagPrefix}${major}.${minor}`; + } else { + tag = `${tagPrefix}${major}`; + } const repository = process.env.GITHUB_REPOSITORY; core.info(`Version is ${major}.${minor}.${patch}+${increment}`); - if (repository !== undefined) { + if (repository !== undefined && !namespace) { core.info(`To create a release for this version, go to https://github.com/${repository}/releases/new?tag=${tag}&target=${branch.split('/').reverse()[0]}`); } + core.setOutput("version", version); core.setOutput("major", major.toString()); core.setOutput("minor", minor.toString()); core.setOutput("patch", patch.toString()); core.setOutput("increment", increment.toString()); core.setOutput("changed", changed.toString()); + core.setOutput("version_tag", tag); + }; async function run() { diff --git a/index.js b/index.js index 223e9ac..357a81c 100644 --- a/index.js +++ b/index.js @@ -36,20 +36,31 @@ const setOutput = (major, minor, patch, increment, changed, branch, namespace) = version += `-${namespace}` } - const tag = tagPrefix + version; + let tag; + if (major === 0 || patch !== 0) { + // Always tag pre-release/major version 0 as full version + tag = `${tagPrefix}${major}.${minor}.${patch}`; + } else if (minor !== 0) { + tag = `${tagPrefix}${major}.${minor}`; + } else { + tag = `${tagPrefix}${major}`; + } const repository = process.env.GITHUB_REPOSITORY; core.info(`Version is ${major}.${minor}.${patch}+${increment}`); - if (repository !== undefined) { + if (repository !== undefined && !namespace) { core.info(`To create a release for this version, go to https://github.com/${repository}/releases/new?tag=${tag}&target=${branch.split('/').reverse()[0]}`); } + core.setOutput("version", version); core.setOutput("major", major.toString()); core.setOutput("minor", minor.toString()); core.setOutput("patch", patch.toString()); core.setOutput("increment", increment.toString()); core.setOutput("changed", changed.toString()); + core.setOutput("version_tag", tag); + }; async function run() {