3 Commits

10 changed files with 39 additions and 11 deletions

View File

@@ -1,3 +1,31 @@
## v0.1.7.4 (2025-08-29)
### New Features
- **Automated Release System**: Complete PowerShell script for automated releases
- **LLVM Code Coverage**: Integrated LLVM coverage reporting with clang-cl builds
- **Intelligent Tag Incrementation**: Automatic detection of next available version tag
- **Comprehensive Testing**: Integration tests against live PrivateBin server
- **Build Artifact Collection**: Automated collection and upload of build artifacts
### Technical Improvements
- **Release Automation**: Full CI/CD pipeline with Gitea API integration
- **Coverage Reports**: HTML coverage reports generated and packaged as artifacts
- **Remote Detection**: Smart Git remote detection (origin > upstream > first available)
- **Error Handling**: Robust error handling and validation throughout the process
- **PowerShell Scripts**: Clean, maintainable PowerShell automation scripts
### Build System
- **CMake Integration**: Enhanced CMakeLists.txt with LLVM coverage support
- **Cross-Platform**: Improved Windows and Linux build compatibility
- **Dependency Management**: Better vcpkg and system package integration
- **Test Framework**: Comprehensive CTest integration with coverage targets
### Documentation
- **Release Process**: Complete documentation of automated release workflow
- **Build Instructions**: Platform-specific build and test instructions
- **API Examples**: Enhanced examples for all supported text formats
- **Testing Guide**: Integration testing setup and execution guide
## v0.1.1.5 (2025-08-28)
### New Features

View File

@@ -1,3 +1,3 @@
test_basic 15 0.446662
test_basic 16 0.41918
example_run 0 0
---

View File

@@ -1 +1 @@
<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='style.css'><script src='control.js'></script></head><body><h2>Coverage Report</h2><h4>Created: 2025-08-29 12:48</h4><p>Click <a href='http://clang.llvm.org/docs/SourceBasedCodeCoverage.html#interpreting-reports'>here</a> for information about interpreting this report.</p><div class='centered'><table><tr><td class='column-entry-bold'>Filename</td><td class='column-entry-bold'>Function Coverage</td><td class='column-entry-bold'>Line Coverage</td><td class='column-entry-bold'>Region Coverage</td><td class='column-entry-bold'>Branch Coverage</td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\base58.cpp.html'>base58.cpp</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td><td class='column-entry-red'><pre> 0.00% (0/67)</pre></td><td class='column-entry-red'><pre> 0.00% (0/48)</pre></td><td class='column-entry-red'><pre> 0.00% (0/34)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\crypto.cpp.html'>crypto.cpp</a></pre></td><td class='column-entry-red'><pre> 66.67% (4/6)</pre></td><td class='column-entry-red'><pre> 56.19% (59/105)</pre></td><td class='column-entry-red'><pre> 36.84% (7/19)</pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\http_client.cpp.html'>http_client.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-red'><pre> 51.67% (186/360)</pre></td><td class='column-entry-red'><pre> 66.67% (170/255)</pre></td><td class='column-entry-red'><pre> 41.38% (48/116)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\json_parser.cpp.html'>json_parser.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-yellow'><pre> 84.21% (80/95)</pre></td><td class='column-entry-red'><pre> 71.88% (23/32)</pre></td><td class='column-entry-red'><pre> 50.00% (7/14)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\privatebinapi.cpp.html'>privatebinapi.cpp</a></pre></td><td class='column-entry-red'><pre> 50.00% (3/6)</pre></td><td class='column-entry-red'><pre> 27.01% (57/211)</pre></td><td class='column-entry-red'><pre> 28.15% (38/135)</pre></td><td class='column-entry-red'><pre> 21.43% (15/70)</pre></td></tr><tr class='light-row-bold'><td><pre>Totals</pre></td><td class='column-entry-red'><pre> 70.83% (17/24)</pre></td><td class='column-entry-red'><pre> 45.58% (382/838)</pre></td><td class='column-entry-red'><pre> 48.67% (238/489)</pre></td><td class='column-entry-red'><pre> 29.66% (70/236)</pre></td></tr></table></div><h5>Generated by llvm-cov -- llvm version 21.1.0</h5></body></html>
<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='style.css'><script src='control.js'></script></head><body><h2>Coverage Report</h2><h4>Created: 2025-08-29 12:50</h4><p>Click <a href='http://clang.llvm.org/docs/SourceBasedCodeCoverage.html#interpreting-reports'>here</a> for information about interpreting this report.</p><div class='centered'><table><tr><td class='column-entry-bold'>Filename</td><td class='column-entry-bold'>Function Coverage</td><td class='column-entry-bold'>Line Coverage</td><td class='column-entry-bold'>Region Coverage</td><td class='column-entry-bold'>Branch Coverage</td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\base58.cpp.html'>base58.cpp</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td><td class='column-entry-red'><pre> 0.00% (0/67)</pre></td><td class='column-entry-red'><pre> 0.00% (0/48)</pre></td><td class='column-entry-red'><pre> 0.00% (0/34)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\crypto.cpp.html'>crypto.cpp</a></pre></td><td class='column-entry-red'><pre> 66.67% (4/6)</pre></td><td class='column-entry-red'><pre> 56.19% (59/105)</pre></td><td class='column-entry-red'><pre> 36.84% (7/19)</pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\http_client.cpp.html'>http_client.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-red'><pre> 51.67% (186/360)</pre></td><td class='column-entry-red'><pre> 66.67% (170/255)</pre></td><td class='column-entry-red'><pre> 41.38% (48/116)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\json_parser.cpp.html'>json_parser.cpp</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-yellow'><pre> 84.21% (80/95)</pre></td><td class='column-entry-red'><pre> 71.88% (23/32)</pre></td><td class='column-entry-red'><pre> 50.00% (7/14)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage\Users\mbusc\source\repos\privatebin-cpp\src\privatebinapi.cpp.html'>privatebinapi.cpp</a></pre></td><td class='column-entry-red'><pre> 50.00% (3/6)</pre></td><td class='column-entry-red'><pre> 27.01% (57/211)</pre></td><td class='column-entry-red'><pre> 28.15% (38/135)</pre></td><td class='column-entry-red'><pre> 21.43% (15/70)</pre></td></tr><tr class='light-row-bold'><td><pre>Totals</pre></td><td class='column-entry-red'><pre> 70.83% (17/24)</pre></td><td class='column-entry-red'><pre> 45.58% (382/838)</pre></td><td class='column-entry-red'><pre> 48.67% (238/489)</pre></td><td class='column-entry-red'><pre> 29.66% (70/236)</pre></td></tr></table></div><h5>Generated by llvm-cov -- llvm version 21.1.0</h5></body></html>

Binary file not shown.

View File

@@ -64,7 +64,7 @@ Write-Host "Build erfolgreich abgeschlossen!" -ForegroundColor Green
# Tests ausführen
Write-Host "Führe Tests aus..." -ForegroundColor Yellow
if (Test-Path "build\CTestTestfile.cmake") {
pushd build
Push-Location build
try {
ctest -C Release --output-on-failure
if ($LASTEXITCODE -ne 0) {
@@ -72,7 +72,7 @@ if (Test-Path "build\CTestTestfile.cmake") {
exit 1
}
} finally {
popd
Pop-Location
}
Write-Host "Tests erfolgreich." -ForegroundColor Green
} else {
@@ -238,7 +238,7 @@ if ($LASTEXITCODE -ne 0) {
# Vor Upload: Artefakte einsammeln (dist)
if (Test-Path "scripts\collect_binaries.ps1") {
Write-Host "Sammle Build-Artefakte (scripts/collect_binaries.ps1)..." -ForegroundColor Yellow
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\collect_binaries.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\collect_binaries.ps1 -OutDir "dist"
}
# Release erstellen
@@ -310,7 +310,7 @@ if (Test-Path $distPath) {
}
try {
$uploadResponse = Invoke-RestMethod -Uri $uploadUri -Method Post -Headers $uploadHeaders -Body $body
Invoke-RestMethod -Uri $uploadUri -Method Post -Headers $uploadHeaders -Body $body | Out-Null
Write-Host "$($artifact.Name) erfolgreich hochgeladen" -ForegroundColor Green
} catch {
Write-Host " ✗ Fehler beim Hochladen von $($artifact.Name): $($_.Exception.Message)" -ForegroundColor Red