Release-script controleert registry-login en origin vóór de build
De release strandde pas na een volledige multi-arch build op "401 Unauthorized" van de registry, en bleef daarvoor minuten hangen op een SSH-wachtwoordprompt bij de tag-controle. Beide checks staan nu vooraan. - Stap 1 heet nu "Controles (tags + registry-login)" en test achtereenvolgens: bestaat de tag al lokaal, is origin bereikbaar, bestaat de tag al op origin, bestaat het image al, en is er een geldige registry-login - Registry-login: wanneer REGISTRY_USER en REGISTRY_TOKEN (of GITEA_TOKEN) gezet zijn logt het script zelf in via --password-stdin, anders stopt het met instructies. dev.ps1 push doet dezelfde controle - Git draait met GIT_SSH_COMMAND="ssh -o BatchMode=yes -o ConnectTimeout=10", dus geen hangende prompts meer; bij geen toegang een uitleg met het https-alternatief - Scripts eindigen expliciet met exit 0 (anders lekt de exitcode van het laatste docker-commando door), en een -DryRun meldt in de slotregel dat er niets is gepubliceerd - BEHEER.md: registry-login met token en de REGISTRY_USER/REGISTRY_TOKEN route Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1bf31f04eb
commit
50ed671e97
@@ -89,7 +89,27 @@ Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# Functies
|
||||
# Zonder registry-login klapt een push pas ná de hele build met 401.
|
||||
$registryHost = $registry.Split("/")[0]
|
||||
|
||||
function Assert-RegistryLogin {
|
||||
$uitvoer = (docker buildx imagetools inspect "${appBase}:latest-dev" 2>&1 | Out-String)
|
||||
if ($uitvoer -notmatch "401|[Uu]nauthorized|authentication required") { return }
|
||||
|
||||
$gebruiker = $env:REGISTRY_USER
|
||||
$token = if ($env:REGISTRY_TOKEN) { $env:REGISTRY_TOKEN } else { $env:GITEA_TOKEN }
|
||||
if ($gebruiker -and $token) {
|
||||
Write-Host "Inloggen op $registryHost als $gebruiker..." -ForegroundColor White
|
||||
$token | docker login $registryHost -u $gebruiker --password-stdin
|
||||
if ($LASTEXITCODE -eq 0) { return }
|
||||
}
|
||||
|
||||
Write-Error "Niet ingelogd op $registryHost. Doe eerst: docker login $registryHost (Gitea-token met scope write:package), of zet REGISTRY_USER en REGISTRY_TOKEN."
|
||||
exit 1
|
||||
}
|
||||
|
||||
function Invoke-AppPush {
|
||||
Assert-RegistryLogin
|
||||
Write-Host "App bouwen en pushen (amd64 + arm64)..." -ForegroundColor White
|
||||
docker buildx build `
|
||||
--platform linux/amd64,linux/arm64 `
|
||||
@@ -162,3 +182,6 @@ switch ($Action) {
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# Expliciete 0: voorkomt dat de exitcode van het laatste docker-commando doorlekt.
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user