3939 # Удаляем префикс v, если он есть
4040 $tag = $tag -replace '^v', ''
4141
42- $newVersion = $tag
42+ # Разделяем версию и prerelease-суффикс (если есть)
43+ if ($tag -match '^([0-9]+\.[0-9]+\.[0-9]+)(?:-([A-Za-z0-9\.\-]+))?$') {
44+ $version = $matches[1]
45+ $prerelease = $matches[2]
46+ } else {
47+ Write-Error "Tag format invalid. Should be X.Y.Z or X.Y.Z-suffix"
48+ exit 1
49+ }
4350
4451 $psd1 = Get-Item ./PSGraph/PSQuickGraph.psd1
4552 if (-not $psd1) {
@@ -48,11 +55,29 @@ jobs:
4855 }
4956
5057 $content = Get-Content $psd1.FullName
58+
59+ # Обновляем ModuleVersion
5160 $versionPattern = 'ModuleVersion\s*=\s*''[^'']*'''
52- $newContent = $content -replace $versionPattern, "ModuleVersion = '$newVersion'"
61+ $newContent = $content -replace $versionPattern, "ModuleVersion = '$version'"
62+
63+ # Обновляем или добавляем Prerelease
64+ $prPattern = '^\s*Prerelease\s*=\s*''[^'']*''\s*$'
65+ if ($prerelease) {
66+ if ($newContent -match $prPattern) {
67+ $newContent = $newContent -replace $prPattern, "Prerelease = '$prerelease'"
68+ } else {
69+ # Добавляем Prerelease после ModuleVersion
70+ $mvPattern = 'ModuleVersion\s*=\s*''[^'']*'''
71+ $newContent = $newContent -replace $mvPattern, "ModuleVersion = '$version'`nPrerelease = '$prerelease'"
72+ }
73+ } else {
74+ # Удаляем Prerelease если был
75+ $newContent = $newContent -replace $prPattern, ''
76+ }
77+
5378 Set-Content -Path $psd1.FullName -Value $newContent
5479
55- "version=$newVersion " | Out-File -FilePath $env:GITHUB_OUTPUT -Append
80+ "version=$version " | Out-File -FilePath $env:GITHUB_OUTPUT -Append
5681
5782 - name : Setup .NET Core SDK ${{ matrix.dotnet-version }}
5883 uses : actions/setup-dotnet@v3
0 commit comments