Skip to content

Commit b1bd0f4

Browse files
committed
feat: added option to skip prerelease part of the version generated
1 parent 6c1123c commit b1bd0f4

File tree

3 files changed

+38
-26
lines changed

3 files changed

+38
-26
lines changed

action.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ inputs:
1717
description: 'The name of the dev branch'
1818
required: true
1919
default: dev
20+
skip-prerelease:
21+
description: "Avoid prerelease part of the version. When true, release-branch and dev-branch are ignored"
22+
required: true
23+
default: "false"
2024
minor-identifier:
2125
description: 'The string or regex to identify a minor release commit'
2226
required: true
@@ -61,6 +65,7 @@ runs:
6165
--previous-version \
6266
--release-branch "${{ inputs.release-branch }}" \
6367
--dev-branch "${{ inputs.dev-branch }}" \
68+
${{ inputs.skip-prerelease == 'true' && '--skip-prerelease' || '' }} \
6469
--minor-identifier="${{ inputs.minor-identifier }}" \
6570
--major-identifier="${{ inputs.major-identifier }}" \
6671
--version-prefix "${{ inputs.prefix }}")
@@ -75,6 +80,8 @@ runs:
7580
export VERSION=$(git-version \
7681
--release-branch "${{ inputs.release-branch }}" \
7782
--dev-branch "${{ inputs.dev-branch }}" \
83+
${{ inputs.skip-prerelease == 'true' && '--skip-prerelease' || '' }} \
84+
--skip-prerelease "${{ inputs.skip-prerelease }}" \
7885
--minor-identifier="${{ inputs.minor-identifier }}" \
7986
--major-identifier="${{ inputs.major-identifier }}" \
8087
--version-prefix "${{ inputs.prefix }}")

src/git-version.cr

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ module GitVersion
1212

1313
class Git
1414
def initialize(@dev_branch : String, @release_branch : String, @minor_identifier : String, @major_identifier : String,
15-
@folder = FileUtils.pwd, @prefix : String = "", @log_paths : String = "")
15+
@folder = FileUtils.pwd, @prefix : String = "", @log_paths : String = "",
16+
@skip_prerelease : Bool = false)
1617
@major_id_is_regex = false
1718
@minor_id_is_regex = false
1819
if match = /\/(.*)\//.match(@major_identifier)
@@ -187,31 +188,33 @@ module GitVersion
187188
end
188189
end
189190

190-
cb = current_branch_or_tag
191+
if !@skip_prerelease
192+
cb = current_branch_or_tag
191193

192-
if cb == @release_branch
193-
#
194-
elsif cb == @dev_branch
195-
prerelease = [DEV_BRANCH_SUFFIX, commits_distance(previous_tag), current_commit_hash()] of String | Int32
196-
previous_version =
197-
SemanticVersion.new(
198-
previous_version.major,
199-
previous_version.minor,
200-
previous_version.patch,
201-
SemanticVersion::Prerelease.new(prerelease),
202-
nil
203-
)
204-
else
205-
branch_sanitized_name = cb.downcase.gsub(/[^a-zA-Z0-9]/, "")[0,30]
206-
prerelease = [branch_sanitized_name, commits_distance(previous_tag), current_commit_hash()] of String | Int32
207-
previous_version =
208-
SemanticVersion.new(
209-
previous_version.major,
210-
previous_version.minor,
211-
previous_version.patch,
212-
SemanticVersion::Prerelease.new(prerelease),
213-
nil
214-
)
194+
if cb == @release_branch
195+
#
196+
elsif cb == @dev_branch
197+
prerelease = [DEV_BRANCH_SUFFIX, commits_distance(previous_tag), current_commit_hash()] of String | Int32
198+
previous_version =
199+
SemanticVersion.new(
200+
previous_version.major,
201+
previous_version.minor,
202+
previous_version.patch,
203+
SemanticVersion::Prerelease.new(prerelease),
204+
nil
205+
)
206+
else
207+
branch_sanitized_name = cb.downcase.gsub(/[^a-zA-Z0-9]/, "")[0,30]
208+
prerelease = [branch_sanitized_name, commits_distance(previous_tag), current_commit_hash()] of String | Int32
209+
previous_version =
210+
SemanticVersion.new(
211+
previous_version.major,
212+
previous_version.minor,
213+
previous_version.patch,
214+
SemanticVersion::Prerelease.new(prerelease),
215+
nil
216+
)
217+
end
215218
end
216219

217220
return add_prefix(previous_version.to_s)

src/main.cr

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require "./git-version"
77
previous_version = false
88
dev_branch = "dev"
99
release_branch = "master"
10+
skip_prerelease = false
1011
minor_identifier = "feature:"
1112
major_identifier = "breaking:"
1213
prefix = ""
@@ -19,6 +20,7 @@ OptionParser.parse do |parser|
1920
parser.on("-f FOLDER", "--folder=FOLDER", "Execute the command in the defined folder") { |f| folder = f }
2021
parser.on("-b BRANCH", "--dev-branch=BRANCH", "Specifies the development branch") { |branch| dev_branch = branch }
2122
parser.on("-r BRANCH", "--release-branch=BRANCH", "Specifies the release branch") { |branch| release_branch = branch }
23+
parser.on("--skip-prerelease", "Skip the prerelase part of the version") { skip_prerelease=true }
2224
parser.on("--minor-identifier=IDENTIFIER",
2325
"Specifies the string or regex to identify a minor release commit with") { |identifier| minor_identifier = identifier }
2426
parser.on("--major-identifier=IDENTIFIER",
@@ -34,7 +36,7 @@ OptionParser.parse do |parser|
3436
end
3537
end
3638

37-
git = GitVersion::Git.new(dev_branch, release_branch, minor_identifier, major_identifier, folder, prefix, log_paths)
39+
git = GitVersion::Git.new(dev_branch, release_branch, minor_identifier, major_identifier, folder, prefix, log_paths, skip_prerelease)
3840

3941
if previous_version
4042
puts "#{git.get_previous_version}"

0 commit comments

Comments
 (0)