Skip to content

Commit bd912a1

Browse files
committed
Use centrally managed GitVersion version in installer scripts
1 parent e69b7ea commit bd912a1

5 files changed

Lines changed: 43 additions & 17 deletions

File tree

.github/workflows/continuous-delivery.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,17 @@ jobs:
2525
dotnet-version: 10.x
2626
- name: GetSemVer
2727
id: get-semver
28+
shell: pwsh
2829
run: |
29-
dotnet tool install --global GitVersion.Tool --version 6.6.0
30-
output=$(dotnet-gitversion)
31-
semver=$(echo $output | grep -oP '"SemVer"\s*:\s*"\K[^"]+')
32-
echo $output
33-
echo "Semantic version: $semver"
34-
echo "semantic-version=$semver" >> $GITHUB_OUTPUT
30+
$RepoRoot = (Get-Location).Path
31+
Import-Module "$RepoRoot/Build/Get-GitVersionToolVersion.psm1"
32+
$version = Get-GitVersionToolVersion -RepoRoot $RepoRoot
33+
dotnet tool install --global GitVersion.Tool --version $version
34+
$output = dotnet-gitversion
35+
$semver = ($output | ConvertFrom-Json).SemVer
36+
Write-Output $output
37+
Write-Output "Semantic version: $semver"
38+
Add-Content -Path $env:GITHUB_OUTPUT -Value "semantic-version=$semver"
3539
- name: Check for Release Requirement
3640
id: release-check
3741
run: |
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
function Get-GitVersionToolVersion {
2+
[CmdletBinding()]
3+
param(
4+
[string]$RepoRoot = (Split-Path -Parent $PSScriptRoot)
5+
)
6+
7+
$packagesPath = Join-Path $RepoRoot 'Directory.Packages.props'
8+
9+
if (-not (Test-Path $packagesPath)) {
10+
throw "Directory.Packages.props not found at $packagesPath"
11+
}
12+
13+
$xml = [xml](Get-Content $packagesPath)
14+
$pkg = $xml.SelectSingleNode("//PackageVersion[@Include='GitVersion.MsBuild']")
15+
if (-not $pkg) {
16+
throw "GitVersion.MsBuild package version not found in $packagesPath"
17+
}
18+
19+
$version = $pkg.GetAttribute('Version')
20+
if (-not $version) {
21+
throw "Version attribute not found for GitVersion.MsBuild in $packagesPath"
22+
}
23+
24+
return $version
25+
}
26+
27+
Export-ModuleMember -Function Get-GitVersionToolVersion

Build/build-osx-installer.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ Compress-Archive `
7272
-Force
7373
Test-ExitCode
7474

75-
dotnet tool install --global GitVersion.Tool --version 6.6.0
75+
Import-Module "$PSScriptRoot/Get-GitVersionToolVersion.psm1"
76+
$gitVersionToolVersion = Get-GitVersionToolVersion -RepoRoot $repoRootPath
77+
dotnet tool install --global GitVersion.Tool --version $gitVersionToolVersion
7678
Test-ExitCode
7779

7880
$SemVer = (dotnet-gitversion | ConvertFrom-Json).SemVer

Build/build-windows-installer.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ dotnet build $repoRootPath\Installer\Elzik.FmSync.WindowsInstaller\Elzik.FmSync.
3131
-p:PublishSingleFile=true
3232
Test-ExitCode
3333

34-
dotnet tool install --global GitVersion.Tool --version 6.6.0
34+
Import-Module "$PSScriptRoot/Get-GitVersionToolVersion.psm1"
35+
$gitVersionToolVersion = Get-GitVersionToolVersion -RepoRoot $repoRootPath
36+
dotnet tool install --global GitVersion.Tool --version $gitVersionToolVersion
3537
Test-ExitCode
3638

3739
$SemVer = (dotnet-gitversion | ConvertFrom-Json).SemVer

Build/tag-with-semver.ps1

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)