53 lines
1.5 KiB
PowerShell
53 lines
1.5 KiB
PowerShell
# scripts/docker_push.ps1
|
|
# Build and push Manual Slop image to Gitea container registry.
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$ProjectRoot = Split-Path -Parent $PSScriptRoot
|
|
$CredsFile = Join-Path $ProjectRoot "credentials.toml"
|
|
|
|
if (-not (Test-Path $CredsFile)) {
|
|
Write-Error "credentials.toml not found at $CredsFile"
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "Reading credentials from credentials.toml..."
|
|
|
|
$pyScript = @"
|
|
import tomllib
|
|
with open(r'$CredsFile', 'rb') as f:
|
|
creds = tomllib.load(f)
|
|
g = creds.get('gitea', {})
|
|
print(g.get('registry_url', '') + '|' + g.get('username', '') + '|' + g.get('token', ''))
|
|
"@
|
|
|
|
$credsJson = python -c $pyScript
|
|
|
|
$parts = $credsJson -split '\|'
|
|
$registryUrl = $parts[0].TrimEnd('/')
|
|
$giteaUser = $parts[1]
|
|
$giteaToken = $parts[2]
|
|
|
|
if (-not $registryUrl -or -not $giteaUser -or -not $giteaToken) {
|
|
Write-Error "Gitea credentials incomplete in credentials.toml"
|
|
Write-Error "Required: registry_url, username, token"
|
|
exit 1
|
|
}
|
|
|
|
$registryHost = $registryUrl -replace 'https?://', ''
|
|
$imageName = "manual_slop:latest"
|
|
$fullTag = "$registryHost/$giteaUser/$imageName"
|
|
|
|
Write-Host "Building Docker image..."
|
|
docker build -t $imageName $ProjectRoot
|
|
|
|
Write-Host "Tagging for Gitea registry: $fullTag"
|
|
docker tag $imageName $fullTag
|
|
|
|
Write-Host "Logging in to Gitea registry..."
|
|
$giteaToken | docker login $registryHost -u $giteaUser --password-stdin
|
|
|
|
Write-Host "Pushing to Gitea registry..."
|
|
docker push $fullTag
|
|
|
|
Write-Host "Done! Image available at: $fullTag" |