From e923bc67bda7c2a230a6b4acb3f7eb3ea68b34aa Mon Sep 17 00:00:00 2001 From: Leandro Salgado Date: Tue, 6 May 2025 11:05:20 +0100 Subject: [PATCH 1/6] fix: add sha prefix to versioning --- src/git-version.cr | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/git-version.cr b/src/git-version.cr index d49959b..0e191dd 100644 --- a/src/git-version.cr +++ b/src/git-version.cr @@ -74,7 +74,8 @@ module GitVersion def current_commit_hash : String cmd = "git rev-parse --verify HEAD --short" - return (exec cmd)[0].rjust(7, '0') + sha = (exec cmd)[0].rjust(7, '0') + return "sha" + sha end def commits_distance(tag : String | Nil) From 310613383d62e4b7c0b5aaee435f56a204f42895 Mon Sep 17 00:00:00 2001 From: Leandro Salgado Date: Tue, 6 May 2025 11:46:34 +0100 Subject: [PATCH 2/6] added unit test and fixed warnings --- spec/git-version-spec.cr | 29 +++++++++++++++++++++++++++++ src/git-version.cr | 9 +++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/spec/git-version-spec.cr b/spec/git-version-spec.cr index 3ec3e7f..cc8ad59 100644 --- a/spec/git-version-spec.cr +++ b/spec/git-version-spec.cr @@ -6,6 +6,35 @@ require "../src/git-version" include Utils describe GitVersion do + it "should match hash with hash without prefix" do + tmp = InTmp.new + begin + git = GitVersion::Git.new("dev", "master", "feature:", "breaking:", tmp.@tmpdir) + + tmp.exec %(git init) + tmp.exec %(git checkout -b #{git.release_branch}) + tmp.exec %(git commit --no-gpg-sign --allow-empty -m "1") + tmp.exec %(git tag "1.0.0") + + version = git.get_new_version + + version.should eq("1.0.1") + + tmp.exec %(git checkout -b dev) + tmp.exec %(git commit --no-gpg-sign --allow-empty -m "2") + + tag_on_master = git.tags_by_branch("#{git.release_branch}") + + tag_on_master.should eq(["1.0.0"]) + + current_branch = git.current_branch_or_tag + + hash = git.current_commit_hash + hashWithoutPrefix = git.current_commit_hash_without_prefix + + hash.should eq("sha#{hashWithoutPrefix}") + end + end it "should get the correct version in master and dev branch" do tmp = InTmp.new diff --git a/src/git-version.cr b/src/git-version.cr index 0e191dd..121512d 100644 --- a/src/git-version.cr +++ b/src/git-version.cr @@ -78,6 +78,11 @@ module GitVersion return "sha" + sha end + def current_commit_hash_without_prefix : String + cmd = "git rev-parse --verify HEAD --short" + return (exec cmd)[0].rjust(7, '0') + end + def commits_distance(tag : String | Nil) if tag.nil? return (exec "git rev-list --count HEAD")[0] @@ -99,7 +104,7 @@ module GitVersion return [] of String end - def get_previous_tag_and_version: Tuple(String | Nil, SemanticVersion) + def get_previous_tag_and_version : Tuple(String | Nil, SemanticVersion) cb = current_branch_or_tag branch_tags = tags_by_branch(cb) @@ -127,7 +132,7 @@ module GitVersion return {previous_tag, previous_version} end - def get_previous_version: String + def get_previous_version : String lt, lv = get_previous_tag_and_version return lt ? lt : add_prefix(lv.to_s) end From f345805078bf005b148cb75a8bdad26d8b5adbd0 Mon Sep 17 00:00:00 2001 From: Leandro Salgado Date: Tue, 6 May 2025 11:49:04 +0100 Subject: [PATCH 3/6] remove unneeded variable --- spec/git-version-spec.cr | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/git-version-spec.cr b/spec/git-version-spec.cr index cc8ad59..fe7a351 100644 --- a/spec/git-version-spec.cr +++ b/spec/git-version-spec.cr @@ -27,8 +27,6 @@ describe GitVersion do tag_on_master.should eq(["1.0.0"]) - current_branch = git.current_branch_or_tag - hash = git.current_commit_hash hashWithoutPrefix = git.current_commit_hash_without_prefix From fc301a4a54601cb0321a1db38ec04799cfa87c5e Mon Sep 17 00:00:00 2001 From: Leandro Salgado Date: Thu, 15 May 2025 14:37:54 +0100 Subject: [PATCH 4/6] change hash format --- spec/git-version-spec.cr | 2 +- src/git-version.cr | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/git-version-spec.cr b/spec/git-version-spec.cr index fe7a351..f4e189e 100644 --- a/spec/git-version-spec.cr +++ b/spec/git-version-spec.cr @@ -30,7 +30,7 @@ describe GitVersion do hash = git.current_commit_hash hashWithoutPrefix = git.current_commit_hash_without_prefix - hash.should eq("sha#{hashWithoutPrefix}") + hash.should eq("sha.#{hashWithoutPrefix}") end end it "should get the correct version in master and dev branch" do diff --git a/src/git-version.cr b/src/git-version.cr index 121512d..af04c51 100644 --- a/src/git-version.cr +++ b/src/git-version.cr @@ -74,13 +74,13 @@ module GitVersion def current_commit_hash : String cmd = "git rev-parse --verify HEAD --short" - sha = (exec cmd)[0].rjust(7, '0') - return "sha" + sha + sha = (exec cmd)[0].strip + return "sha." + sha end def current_commit_hash_without_prefix : String cmd = "git rev-parse --verify HEAD --short" - return (exec cmd)[0].rjust(7, '0') + sha = (exec cmd)[0].strip end def commits_distance(tag : String | Nil) From 229884d1e72af07fee06f6cc1c4c17bf5fde2710 Mon Sep 17 00:00:00 2001 From: Leandro Salgado Date: Thu, 15 May 2025 15:37:24 +0100 Subject: [PATCH 5/6] add return --- src/git-version.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/git-version.cr b/src/git-version.cr index af04c51..9562c11 100644 --- a/src/git-version.cr +++ b/src/git-version.cr @@ -80,7 +80,7 @@ module GitVersion def current_commit_hash_without_prefix : String cmd = "git rev-parse --verify HEAD --short" - sha = (exec cmd)[0].strip + return (exec cmd)[0].strip end def commits_distance(tag : String | Nil) From 6d7d3d72705e6bc90eb9ba057f4efc62149be3bc Mon Sep 17 00:00:00 2001 From: Leandro Salgado Date: Wed, 28 May 2025 15:05:56 +0100 Subject: [PATCH 6/6] update version of orb --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index efee9dc..0efb548 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ version: 2.1 orbs: - codacy: codacy/base@9.3.1 + codacy: codacy/base@12.2.0 # Re-usable blocks to reduce boilerplate in job definitions. references: