BuildScripts/Tasks/backup.changelog.build.ps1
param( [Parameter()] [string]$ChangelogBackupPath = ( Get-BuildProperty ChangelogBackupPath (Join-Path (Get-BuildProperty Artifact) 'backup') ), [Parameter()] [string]$ChangelogPath = ( Get-BuildProperty ChangelogPath (Join-Path $BuildRoot 'CHANGELOG.md') ) ) #synopsis: Create a backup of the changelog file task backup.changelog { if (Test-Path $ChangelogBackupPath) { logWarn "$ChangelogBackupPath needs to be created" New-Item -Path $ChangelogBackupPath -ItemType Directory -Force } if (Test-Path $ChangelogPath) { $currentVersion = [System.Version]$BuildInfo.Project.Version.MajorMinorPatch $lastVersion = [System.Version](Get-ChangelogData $ChangelogPath | Select-Object -ExpandProperty LastVersion) if ($null -ne $lastVersion) { if ($currentVersion -gt $lastVersion) { logDebug " Creating backup of changelog prior to update ($lastVersion)" $changelogItem = Get-Item $ChangelogPath $backup = (Join-Path $changelogItem.Directory "$($changelogItem.BaseName).v$($lastVersion.ToString()).md") if (Test-Path $backup) { logWarn " **Overwriting previous backup $backup" } $changelogItem | Copy-Item -Destination $backup -Force } } } else { logWarn "$ChangelogPath does not exist" } } |