feat: add build and upload scripts for Forgejo PyPI, update version management

This commit is contained in:
claudi 2026-03-03 13:44:58 +01:00
parent 462c8aeac9
commit 64ea445ec3
12 changed files with 1288 additions and 0 deletions

82
update_version.ps1 Normal file
View file

@ -0,0 +1,82 @@
param(
[Parameter(Mandatory = $true, Position = 0)]
[string]$Version
)
function Test-VersionFormat {
param([string]$Ver)
$pattern = '^\d+\.\d+\.\d+(?:-[a-zA-Z0-9]+)?$'
return $Ver -match $pattern
}
function Update-FileVersion {
param(
[string]$FilePath,
[string]$Pattern,
[string]$NewVersion
)
try {
$content = Get-Content -Path $FilePath -Raw
$newContent = $content -replace $Pattern, $NewVersion
if ($content -eq $newContent) {
Write-Host "[OK] $(Split-Path -Leaf $FilePath) already up-to-date" -ForegroundColor Green
return $true
}
Set-Content -Path $FilePath -Value $newContent -NoNewline
Write-Host "[OK] Updated $(Split-Path -Leaf $FilePath)" -ForegroundColor Green
return $true
}
catch {
Write-Host "[ERROR] Error: $_" -ForegroundColor Red
return $false
}
}
if (-not (Test-VersionFormat $Version)) {
Write-Host "[ERROR] Invalid version format: $Version" -ForegroundColor Red
exit 1
}
$projectRoot = Split-Path -Parent $PSCommandPath
$pyprojectPath = Join-Path $projectRoot "pyproject.toml"
$initPath = Join-Path (Join-Path $projectRoot "agravity_client") "__init__.py"
Write-Host "======================================================================"
Write-Host "Updating Agravity Client to version $Version"
Write-Host "======================================================================"
$success = $true
if (Test-Path $pyprojectPath) {
$pattern = 'version = "[^"]+"'
$newVersion = "version = `"$Version`""
if (-not (Update-FileVersion $pyprojectPath $pattern $newVersion)) {
$success = $false
}
}
else {
Write-Host "[ERROR] pyproject.toml not found" -ForegroundColor Red
$success = $false
}
if (Test-Path $initPath) {
$pattern = '__version__ = "[^"]+"'
$newVersion = "__version__ = `"$Version`""
if (-not (Update-FileVersion $initPath $pattern $newVersion)) {
$success = $false
}
}
else {
Write-Host "[ERROR] init file not found" -ForegroundColor Red
$success = $false
}
Write-Host "======================================================================"
if ($success) {
Write-Host "[OK] Version successfully updated to $Version" -ForegroundColor Green
exit 0
}
else {
Write-Host "[ERROR] Update completed with errors" -ForegroundColor Red
exit 1
}