Auto Version Bumping and Deployments (SemVer, GitFlow, GitVersion, CI&CD)
ฝัง
- เผยแพร่เมื่อ 5 มิ.ย. 2024
- The purpose of this demo is showcase the WOW (ways of working) I come from with auto version bumping and deployments (CI and CD) hand in hand with gitflow.
Just to show certain ways of doing things so everyone can start thinking what ways
they like, and whether they want to adopt it.
00:00 Introduction
01:47 What is semantic versioning?
04:40 What is GitFlow?
10:44 What is GitVersion? And use cases
15:46 Repo Settings for GitFlow
16:42 Demo GitVersion (C# and powershell)
20:44 GitVersion inner working explained (Demo cont.)
23:42 Demo GitFlow+GitVersion
31:45 Demo GitVersion+CI
34:11 Demo hotfix using GitFlow+GitVersion
42:34 Demo CD
45:02 CD Unofficial Release + GitVersion
46:17 GitVersion+CI Stamping artifacts
47:44 Outro - วิทยาศาสตร์และเทคโนโลยี
This is awesome man. Very well explained. Well done!
Thanks for providing this video.
Is there a way to use/access the GitVersion data in C# so you can show them. Since my assembly is now synchronized, I can use its version. But are there options to get the branch or other details?
GitInfo provides those as kind of generated class.
Is there any way to get the version info also in the ClickOnce version as well?
i not sure what u mean by "ClickOnce" version, however yes it very easy to access all gitversion informaiotn form within ur dll/C# code
have a look here: gitversion.net/docs/usage/msbuild
Once ur dll is stamped ur u used the msbuild nuget, within the same dll/project u can simple do:
var assemblyName = assembly.GetName().Name;
var gitVersionInformationType = assembly.GetType("GitVersionInformation");
I just wish you hadn't used this tool for GitFlow, but rather typed in git commands. Makes it all very confusing. And more drawings would have helped, demoing step by step how versions change as we move from features to releases.
I believe ms is considering Releases to be "classic" now, as you can accomplish the same thing with deployment jobs in yaml pipeline. so deployment jobs + environments replaces release + deployment groups. very confusing
Which git desktop tool are you using in your video?
the tool that i am using is Source Tree. I been using it for a decant now, its a must: www.sourcetreeapp.com/
How can azure and local have a different semver?
they should not. it uses git history (both gits should be in), maybe if u have code that is committed and not yet pushed to the cloud, that could cause that issue
It seems GitVersion doesn't work with monorepos, which makes it useless for my preferred way of handling my code. Too bad, looks interesting.
What do u mean? Like having the repos all sync with one version? Cause keeping them separate and versioning each repo individually is the default behavior ?
However i have add monorepos before and when there was a reason to sync up all the repos again, i had to tag/release on each repo.
Great video, terrible speaker :D