From b11b6a6f2ccfed2359d8e0d9f9d300031d8f925e Mon Sep 17 00:00:00 2001 From: Boris Proshin Date: Tue, 8 Oct 2024 01:06:50 +0300 Subject: [PATCH] Fix getVersionDescription() to prioritize version tags over non-version tags (#673) * Fix getVersionDescription() to prioritize version tags over non-version tags This fix modifies the getVersionDescription() method to ensure it only considers valid version tags when describing the current version. It retrieves all tags merged into the current branch, filters them based on a version-compatible regex, and uses the most recent valid version tag for description. If no valid tags are found, it falls back to the default description behavior. This resolves the issue of incorrect tags being used when multiple tags are present. * Update versioning.ts Rewrote getting the description for the last valid tag using `rev-list` and `rev-parse` * Fix formatting * Revert "dist" This reverts commit bd58cbedf7e9f6928ab3b7ca6dd858622c5c1f13. * Revert "dist" This reverts commit bd58cbedf7e9f6928ab3b7ca6dd858622c5c1f13. --- dist/index.js | Bin 22303572 -> 22304244 bytes dist/index.js.map | Bin 14784413 -> 14785146 bytes src/model/versioning.ts | 16 +++++++++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/dist/index.js b/dist/index.js index ea151c67a187477aceda8e5c55cc091164df72c1..ff6bad6f5ed7070bb782c9cc3a033c55c348b41e 100644 GIT binary patch delta 1936 zcmZwHc~}%>9Ki91V*mm1KtYjXRCE_%S5!O@0g*!#L_wgCR#=y1*<5yMX8?^zD@w}> z>~QS9?XV)t?!peTLrW<;EIaJJPwl?GKhfvu>2aUu^L=LKd7s}q^Zv01whe?I***}y zzAKXdU(dEU{7$>>^EcRar^%LL>?rAuHCj@`BaIc&eUY(@ zQnPbZud`jPaJmZDw3v_WW2`Jvk|I*9x>M85tVuC?E0mZZ-pJU$FEG(auMSeS)G1+^ zrZS(}X7{)o)HbJIbNjq1t2MRJ*XnJss#TiX>rxx-9?vSfW3}4g)Es_yi_S8uQNA@S z-mu%0Tw~+%uqdOaHzIT$@2Kh3gM-+Mk3T+@8?83omKClZ|2ceKO;;Vh=4Q99<+Gc9 z(v$K#+fE!(eR7BAfAc%7RynQuV`u5`wMKe%j)<@JyPM6%=G{tcSg~DelF7!Q8buA( zntXm^Pn{BH9NZfak#Vw-mgJ8AzE!8ib>e}H>Z~^om&PR+YipFD8~SYuLJ*2D3_&;| z5D8fmg<%+u5g3VRjKXNdAQodV7I7GdcqAYZNl-B!6EG3Un1snN!Hg74K`PQV8OXp)%))HUK_=!R3-geT9OPm?@~{B;C_o{Kun@&qgvBU9DVCrNOR)^)sK9bm zq6*bG1*f70D^QEmV8cq(p&oXuf&&e3q7g1M!Hv_g8Xh#m3m;l=2K>;VqZMsv#~Q4~ zndrb-=)~DrhxIrI=i)qc;e1?x4cLeaaS=A*VqAht(TyH##$~u1SKvx)fq|{K3RmMA zT#M^)J#N5_xCuAo7Tk*4uno844%~^mupM{f9^8vw+=m^w9}i$B9>ha<7?0plJch^d z1fE16cHt>Jjc4#I`tclg<9WP*7x5DIU@u!3wKEbE>44>l*e2K5{HNL^O_zvIW2mFYia0Ey3Gk(FZ_zl0~5B!P0 z@HhV1)Nc#uh9poDBng%%k`PI#Bup|y5-y35L`sHAq9ns4!zCjmBPG$2QIgS;7)h*T zjAX1NPBKmsFG-LjN|Ge1WV~d8WTGTlGD$L7Vv?98DUvCYR7sk|BC$%QO423MB-14` zBpH&Kl39}3k~xx0$y`a6WS%5jk|W8L%$MXz7D)0X1(HHZkz}EySh7g6SW+S>l`N5z UNtQ~MNy;S^0lWA|3FtZcFVU-OL;wH) delta 1466 zcmWmES6mGM0EO{iag7EcQj!Ll6)GyFsLVu>T|)NWBO_cw$i7zg&fYtFugKne@3Pl- z9{%6Uc|Y0dnHE{AGcA&gW=3;kE@SQ;hL~7WQkuP$DI?AhY-%~e$=;OM%3ztC5N|*p zCe&qR|x15QFAuftF~6)@Xyah(#RQAs+3~0UeQmPUws-=!$OWjvnZVUg(WJ=!<^n zj{z8nK^Tl77>Z#Sjzo;WNQ}a0Bw-B3VjPSZj|oV|L`=eDq+klBVj5C09WyW!voITT zFc&7w!+b2jLM%cW7GnvPVi}fW1y*7eR$~p;Vjb2a9UHI_o3I&Muoc^|9XqfSyRaL3 zuowHV9|v#{hme88ID(@%hT}MalQ@ObID@k|hx53Ai@1c#$ix*~MHa5%I&R=5Zs9iW z;4bdrJ|5s99^o;b;3=NrIbPr;Ug0&~;4R+aJwD(gKH)RIAR9UOif{OiANYx1_>DjK zi+?Ez@n)$|%#~b9ZpEPFQSvJJl>CZ?VyRdu)=B}TpkkvGQVJ_Y6kDaJQcST^iYxYt zgHl3qR7xsNN-4!zaZy|qH>I>vMsZilD&>^&N(H5&Qc3YpJQXjcvQkBnYAc~im=dnkQR*u7l=?~orJ)j`G*Tj!#!3?e8tsXvW{r6sb|M&j?+7C5Z{_1J6 z9PVmuDJy90ojmx+s`kD?EoDbrdyl6?|Ex*PPP|qvK4vY9kFImX?Tw4AH+njoJ)Log z#~>si5lOHh87UZyAsC8bxCyBkju99ME7C9u>Bzun+>9~EL>96!7PhFTQ*_Ufo-&an z$M4CsBvmMWL%8L#-$hnIKr>AHIAM1>gR1UVeX+W$PI?sQpHoI6}bHeF7Te`nc}Gfc%V+=U{ft`PH8f62;7zFDUkF1hf$unlv#Ow};+ zIpc6llR3q;qv9(Rd3yJSG})1F8@j6}Gf_r<6Uiy|d0|nn1T>#)xgxA%U82&^LVi)J z1OhdRcd78HhF8}jrWOvl>{6LNB}1NS%T1J{`$dsl9qmh%+pq4h2>xl93sl|U9J30y zs2^AuizZab>XA8VLxP%V%nUCNnb)JRPSw?V=Z!e3^BMyG>C)(O#d4{>mX$Ylk1Uu> z*MjoOubEc)N1H7nSu;x&qwYpW*?d)`rWF)07W}4~l?vAnPn0V^xoM9MGo9^!R3mnHspWJ)S{g)aa z89EyunUb_MnDRG}EqpMLZ+phXv@GEYBXbsy2u3dnWQ|J>B_xN^ncfU$G{Q_qn%OL7 zHJbsmo5P&uGPilmYd-T^z=9UCuth9tF^gNmlHue~RAToXvGoGMGryyvgP+GWESeDW zC(2Tmwv1&hXL&1F(MndfidC&QgB{{fhdJC4j&zix9phNXIo=6Q zbdr;u;#8+O-5Jhwmb0DXT<1C81uk@vi(TSUm$}>(#<|i}#+%@3*SOYou6KhQ-Q;Gs znCMowx!oNG-RUlOyT`qT+~}k(<))dcq-V3IB(MyKC z>=mzi&FkLqrngMzVfwieCs>k`@xTX^0Qz3>Nmgp N!=K@pKffv`{RfA(3?Kji diff --git a/src/model/versioning.ts b/src/model/versioning.ts index 38176907..a0ac3675 100644 --- a/src/model/versioning.ts +++ b/src/model/versioning.ts @@ -207,7 +207,21 @@ export default class Versioning { * identifies the current commit. */ static async getVersionDescription() { - return this.git(['describe', '--long', '--tags', '--always', 'HEAD']); + const versionTags = (await this.git(['tag', '--list', '--merged', 'HEAD', '--sort=-creatordate'])) + .split('\n') + .filter((tag) => new RegExp(this.grepCompatibleInputVersionRegex).test(tag)); + + if (versionTags.length === 0) { + core.warning('No valid version tags found. Using fallback description.'); + + return this.git(['describe', '--long', '--tags', '--always', 'HEAD']); + } + + const latestVersionTag = versionTags[0]; + const commitsCount = (await this.git(['rev-list', `${latestVersionTag}..HEAD`, '--count'])).trim(); + const commitHash = (await this.git(['rev-parse', '--short', 'HEAD'])).trim(); + + return `${latestVersionTag}-${commitsCount}-g${commitHash}`; } /**