Release v0.1.5.4 prepare for release
This commit is contained in:
@ -56,6 +56,70 @@ if ($LASTEXITCODE -ne 0) {
|
||||
}
|
||||
Write-Host "Build erfolgreich abgeschlossen!" -ForegroundColor Green
|
||||
|
||||
# Tests ausführen (Unit + optional Integration via PRIVATEBIN_IT)
|
||||
Write-Host "Führe Tests aus..." -ForegroundColor Yellow
|
||||
if (Test-Path "build\CTestTestfile.cmake") {
|
||||
pushd build | Out-Null
|
||||
try {
|
||||
# PRIVATEBIN_IT/PRIVATEBIN_SERVER werden ggf. aus der Umgebung übernommen
|
||||
ctest -C Release --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host "Tests fehlgeschlagen!" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
} finally {
|
||||
popd | Out-Null
|
||||
}
|
||||
Write-Host "Tests erfolgreich." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Warnung: Keine Tests gefunden (build/CTestTestfile.cmake fehlt)." -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# Optional: clang-cl Coverage bauen und HTML-Report als Artefakt paketieren
|
||||
Write-Host "Erzeuge optionalen Coverage-Report (clang-cl + LLVM), falls Tools vorhanden sind..." -ForegroundColor Yellow
|
||||
try {
|
||||
$llvmCov = "C:\\Program Files\\LLVM\\bin\\llvm-cov.exe"
|
||||
$llvmProf = "C:\\Program Files\\LLVM\\bin\\llvm-profdata.exe"
|
||||
if (Test-Path $llvmCov -PathType Leaf -and Test-Path $llvmProf -PathType Leaf) {
|
||||
$toolchain = Join-Path $env:USERPROFILE 'vcpkg\scripts\buildsystems\vcpkg.cmake'
|
||||
$haveToolchain = Test-Path $toolchain -PathType Leaf
|
||||
$cmakeArgs = @(
|
||||
'-S','.',
|
||||
'-B','build-clang',
|
||||
'-G','Visual Studio 17 2022',
|
||||
'-A','x64',
|
||||
'-T','ClangCL',
|
||||
'-DENABLE_LLVM_COVERAGE=ON',
|
||||
("-DLLVM_PROFDATA={0}" -f $llvmProf),
|
||||
("-DLLVM_COV={0}" -f $llvmCov)
|
||||
)
|
||||
if ($haveToolchain) {
|
||||
$cmakeArgs += ("-DCMAKE_TOOLCHAIN_FILE={0}" -f $toolchain)
|
||||
$cmakeArgs += '-DVCPKG_TARGET_TRIPLET=x64-windows'
|
||||
}
|
||||
& cmake @cmakeArgs | Out-Null
|
||||
if ($LASTEXITCODE -ne 0) { throw "CMake-Konfiguration für Coverage fehlgeschlagen" }
|
||||
|
||||
& cmake --build build-clang --config Release --target coverage_llvm
|
||||
if ($LASTEXITCODE -ne 0) { throw "Coverage-Build fehlgeschlagen" }
|
||||
|
||||
$htmlDir = "build-clang/coverage/html"
|
||||
if (Test-Path $htmlDir) {
|
||||
if (-not (Test-Path 'dist')) { New-Item -ItemType Directory -Path 'dist' | Out-Null }
|
||||
$zipPath = "dist/coverage_html.zip"
|
||||
if (Test-Path $zipPath) { Remove-Item -Force $zipPath }
|
||||
Compress-Archive -Path (Join-Path $htmlDir '*') -DestinationPath $zipPath
|
||||
Write-Host "Coverage-HTML nach $zipPath gepackt." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "Hinweis: Kein Coverage-HTML-Verzeichnis gefunden (Tests evtl. ohne Ausführungspfad)." -ForegroundColor Yellow
|
||||
}
|
||||
} else {
|
||||
Write-Host "LLVM-Tools nicht gefunden; überspringe Coverage (erwartet: $llvmCov / $llvmProf)." -ForegroundColor Yellow
|
||||
}
|
||||
} catch {
|
||||
Write-Host "Warnung: Coverage-Erzeugung fehlgeschlagen: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# Änderungen committen
|
||||
$status = git status --porcelain
|
||||
if ($status) {
|
||||
|
||||
Reference in New Issue
Block a user