Wyświetlenie numeru (hash) commitu w stopce opublikowanej strony

0

Na wstępie zaznaczę, że jestem nowy w asp.net.
Czy w jakiś łatwy sposób da się wyświetlić numer (hash) commitu w stopce opublikowanej strony?
Mam kilka wersji opublikowanej strony (developerska/testowa/produkcyjna) i chciałbym żeby na każdej wyświetlał się hash commitu żebym wiedział w którym miejscu "drzewka" znajduje się ta wersja.
Poprzez AssemblyVersion mogę łatwo nadać i wyświetlić numer wersji. Czy da się w podobny sposób wyświetlić także commit hash na każdej opublikowanej stronie?

0

Najprościej chyba przez CI wstawić w AssemblyVersion hash pobranego commita.
Chociaż trochę to dziwne podejście, zazwyczaj wyświetla się po prostu automatycznie nadawany numer wersji, hashe nie są chyba zbyt czytelne.

0

Robiłem coś podobnego (ale chodziło o generowanie SemVer na podstawie git flow) i użyłem GitVersion w połączeniu z MSBuild: http://gitversion.readthedocs.io/en/stable/usage/msbuild-task/

Aczkolwiek u mnie się nie sprawdzało (bo nie lubię pełnego formatu wersjonowania w GitVersion oraz bo jego generowane metadane nie działały w NETMF) i wtedy zrobiłem sobie własną kombinację na podstawie MSBuild Community Tasks - dokładnie to istniał szablon i task TemplateFile w nim podmieniał zawartość:

[assembly: AssemblyVersion("${GfvSemVer}")]
[assembly: AssemblyFileVersion("${GfvAssemblySemVer}")]
[assembly: AssemblyInformationalVersion("${GfvFullSemVer}.${ShortSha}")]

Na odpowiednie tokeny generowane przez GitVersionTask.

Opakowałem to nawet w NuGeta: https://www.nuget.org/packages/Ktos.Build.GitVersion/ ale ostatnio jak chciałem zainstalować, to coś niezbyt zadziałało jak powinno ;-)

Nigdy tego co prawda nie robiłem dla ASP.NET, ale chyba nie powinno być specjalnej różnicy.

[edit]
W ogóle jeżeli zależy ci na samych hashach to Task GitVersion z MSBuild Community Tasks ma coś, co powinno ci wystarczyć: https://github.com/loresoft/msbuildtasks/blob/master/Source/MSBuild.Community.Tasks/Git/GitVersion.cs

0

@Ktos: zamiast wynajdować nieco kanciaste koło na nowo można po prostu użyć narzędzia, które to wspiera, np. Fake.

0

A to nie jest tak ze jedynym slusznym rozwiazaniem jest uzycie git hooks (zakladam ze autor uzywa gita) - przy kazdym checkoucie ustawiamy w pliku aktualna wersje w jakims pliku i wykorzystuje sie go pozniej by pobrac aktualna wersje? Nie robilem ale wydaje sie mozliwe do zrobienia. Mozna by tez taki plik zapisywac przy commicie - tylko wtedy moglby miec zapisany poprzedni commit (aktualnego sie nie da bo plik z hashem zmienialby hasha) - a to troche zle wyglada.

2

A nie lepiej przy budowaniu oznaczać tagami z numerem wersji commit z którego się buduje? Tak to się zwykle rozwiązuje.

0
tamtamtu napisał(a):

A to nie jest tak ze jedynym slusznym rozwiazaniem jest uzycie git hooks (zakladam ze autor uzywa gita) - przy kazdym checkoucie ustawiamy w pliku aktualna wersje w jakims pliku i wykorzystuje sie go pozniej by pobrac aktualna wersje? Nie robilem ale wydaje sie mozliwe do zrobienia. Mozna by tez taki plik zapisywac przy commicie - tylko wtedy moglby miec zapisany poprzedni commit (aktualnego sie nie da bo plik z hashem zmienialby hasha) - a to troche zle wyglada.

Pewnie by się dało, tylko czemu używać oddzielnego pliku do czegoś,co i tak powinno być w AssemblyInfo, no i czemu przerzucać na kontrolę wersji numerację buildów? To nie wygląda na coś, o czym Git w ogóle powinien wiedzieć.

0

Jesli korzystasz z jakiegos CI narzedzia do oficjalnych buildow to nie ma to sensu - zakladam jednak ze autor tego nie robi tylko wrzuca to co stworzy mu jego wlasne VS - bo to dosc dziwne pytanie przy takich narzedziach (chyba wszystkie w jakis sposob to obsluguja).

0

To mimo wszystko lepiej chyba zacząć używać jakiegoś narzędzia (niekoniecznie CI, lokalna automatyzacja buildów wystarczy).

1 użytkowników online, w tym zalogowanych: 0, gości: 1