diff --git a/.github/workflows/pr_validation.yaml b/.github/workflows/pr_validation.yaml index 1a717af..f862417 100644 --- a/.github/workflows/pr_validation.yaml +++ b/.github/workflows/pr_validation.yaml @@ -51,58 +51,6 @@ jobs: - name: "dotnet pack" run: dotnet pack -c Release - - name: "dotnet test (Linux)" - if: runner.os == 'Linux' + - name: "dotnet test" run: dotnet test --configuration Release --verbosity normal --logger trx --collect:"XPlat Code Coverage" - - - name: "dotnet test (Windows)" - if: runner.os == 'Windows' - run: dotnet test --configuration Release --verbosity normal --logger trx --collect:"XPlat Code Coverage" ./tests/TurboMqtt.Tests/TurboMqtt.Tests.csproj - - - name: Combine Coverage Reports - if: runner.os == 'Linux' - uses: danielpalme/ReportGenerator-GitHub-Action@5.2.5 - with: - reports: "**/*.cobertura.xml" - targetdir: "${{ github.workspace }}" - reporttypes: "Cobertura" - verbosity: "Info" - title: "Code Coverage" - tag: "${{ github.run_number }}_${{ github.run_id }}" - customSettings: "" - toolpath: "reportgeneratortool" - - - name: Publish Code Coverage Report - if: runner.os == 'Linux' - uses: irongut/CodeCoverageSummary@v1.3.0 - with: - filename: "Cobertura.xml" - badge: true - fail_below_min: false - format: markdown - hide_branch_rate: false - hide_complexity: false - indicators: true - output: both - thresholds: "10 30" - - - name: Add Coverage PR Comment - if: github.event_name == 'pull_request_target' && runner.os == 'Linux' - uses: marocchino/sticky-pull-request-comment@v2 - with: - recreate: true - path: code-coverage-results.md - - - name: Upload Test Result Files - if: runner.os == 'Linux' - uses: actions/upload-artifact@v4 - with: - name: test-results - path: ${{ github.workspace }}/**/TestResults/**/* - retention-days: 5 - - - name: Publish Test Results - if: always() && runner.os == 'Linux' - uses: EnricoMi/publish-unit-test-result-action@v2.16.1 - with: - trx_files: "${{ github.workspace }}/**/*.trx" + diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..3b5632d --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,18 @@ + + + Copyright © 2015-2024 Petabridge + Petabridge + 0.2.2 + Added footer that displays assembly version on Pricing UI + + + + + + + $(NoWarn);CS1591 + + + net8.0 + + \ No newline at end of file diff --git a/src/Directory.Packages.props b/Directory.Packages.props similarity index 100% rename from src/Directory.Packages.props rename to Directory.Packages.props diff --git a/scripts/bumpVersion.ps1 b/scripts/bumpVersion.ps1 new file mode 100644 index 0000000..cdc46ed --- /dev/null +++ b/scripts/bumpVersion.ps1 @@ -0,0 +1,28 @@ +function UpdateVersionAndReleaseNotes { + param ( + [Parameter(Mandatory=$true)] + [PSCustomObject]$ReleaseNotesResult, + + [Parameter(Mandatory=$true)] + [string]$XmlFilePath + ) + + # Load XML + $xmlContent = New-Object XML + $xmlContent.Load($XmlFilePath) + + # Update VersionPrefix and PackageReleaseNotes + $versionPrefixElement = $xmlContent.SelectSingleNode("//VersionPrefix") + $versionPrefixElement.InnerText = $ReleaseNotesResult.Version + + $packageReleaseNotesElement = $xmlContent.SelectSingleNode("//PackageReleaseNotes") + $packageReleaseNotesElement.InnerText = $ReleaseNotesResult.ReleaseNotes + + # Save the updated XML + $xmlContent.Save($XmlFilePath) +} + +# Usage example: +# $notes = Get-ReleaseNotes -MarkdownFile "$PSScriptRoot\RELEASE_NOTES.md" +# $propsPath = Join-Path -Path (Get-Item $PSScriptRoot).Parent.FullName -ChildPath "Directory.Build.props" +# UpdateVersionAndReleaseNotes -ReleaseNotesResult $notes -XmlFilePath $propsPath diff --git a/scripts/getReleaseNotes.ps1 b/scripts/getReleaseNotes.ps1 new file mode 100644 index 0000000..419d85f --- /dev/null +++ b/scripts/getReleaseNotes.ps1 @@ -0,0 +1,44 @@ +function Get-ReleaseNotes { + param ( + [Parameter(Mandatory=$true)] + [string]$MarkdownFile + ) + + # Read markdown file content + $content = Get-Content -Path $MarkdownFile -Raw + + # Split content based on headers + $sections = $content -split "####" + + # Output object to store result + $outputObject = [PSCustomObject]@{ + Version = $null + Date = $null + ReleaseNotes = $null + } + + # Check if we have at least 3 sections (1. Before the header, 2. Header, 3. Release notes) + if ($sections.Count -ge 3) { + $header = $sections[1].Trim() + $releaseNotes = $sections[2].Trim() + + # Extract version and date from the header + $headerParts = $header -split " ", 2 + if ($headerParts.Count -eq 2) { + $outputObject.Version = $headerParts[0] + $outputObject.Date = $headerParts[1] + } + + $outputObject.ReleaseNotes = $releaseNotes + } + + # Return the output object + return $outputObject +} + +# Call function example: +#$result = Get-ReleaseNotes -MarkdownFile "$PSScriptRoot\RELEASE_NOTES.md" +#Write-Output "Version: $($result.Version)" +#Write-Output "Date: $($result.Date)" +#Write-Output "Release Notes:" +#Write-Output $result.ReleaseNotes diff --git a/src/Directory.Build.props b/src/Directory.Build.props deleted file mode 100644 index 4377a50..0000000 --- a/src/Directory.Build.props +++ /dev/null @@ -1,32 +0,0 @@ - - - Copyright © 2015-2024 Petabridge - Petabridge - 0.2.2 - Added footer that displays assembly version on Pricing UI - - - - - - - $(NoWarn);CS1591 - - - 2.4.1 - 16.9.4 - 1.4.20 - 0.5.2 - 0.5.2 - 5.10.3 - 3.17.1 - 0.8.5 - 3.1.0 - 1.1.4 - 4.2.0 - 1.0.0 - - - net8.0 - - \ No newline at end of file