94 lines
3.6 KiB
PowerShell
94 lines
3.6 KiB
PowerShell
# EENE Dashboard -> Gitea upload
|
|
# Run: Gitea업로드.bat or powershell -ExecutionPolicy Bypass -File scripts\gitea-upload.ps1
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$projectRoot = Split-Path $PSScriptRoot -Parent
|
|
$pubKeyPath = Join-Path $env:USERPROFILE '.ssh\id_ed25519_eene_dashboard.pub'
|
|
|
|
Write-Host ''
|
|
Write-Host '=== EENE Dashboard Gitea upload ===' -ForegroundColor Cyan
|
|
Write-Host ''
|
|
|
|
if (-not (Test-Path $pubKeyPath)) {
|
|
Write-Host '[ERROR] Deploy key not found. Run:' -ForegroundColor Red
|
|
Write-Host ' ssh-keygen -t ed25519 -C eene_dashboard-deploy -f $env:USERPROFILE\.ssh\id_ed25519_eene_dashboard -N ""'
|
|
exit 1
|
|
}
|
|
|
|
Write-Host '[1/4] Deploy key (paste this line in Gitea -> Settings -> Deploy Keys):' -ForegroundColor Yellow
|
|
Write-Host ''
|
|
Get-Content $pubKeyPath
|
|
Write-Host ''
|
|
$ok = Read-Host 'Registered deploy key on Gitea? (y/n)'
|
|
if ($ok -ne 'y' -and $ok -ne 'Y') {
|
|
Write-Host 'Register the key on Gitea, then run again.' -ForegroundColor Yellow
|
|
exit 0
|
|
}
|
|
|
|
Write-Host ''
|
|
Write-Host '[2/4] SSH test...' -ForegroundColor Yellow
|
|
$keyPath = Join-Path $env:USERPROFILE '.ssh\id_ed25519_eene_dashboard'
|
|
$fp = ssh-keygen -lf $pubKeyPath 2>$null
|
|
if ($fp) { Write-Host " Key fingerprint: $fp" -ForegroundColor DarkGray }
|
|
$giteaHost = '172.16.10.175'
|
|
$giteaPort = 222
|
|
$giteaRepo = 'RyuWonJun/eene_dashboard.git'
|
|
$sshConfig = Join-Path $env:USERPROFILE '.ssh\config'
|
|
$test = ssh -F $sshConfig -i $keyPath -T "git@${giteaHost}" -p $giteaPort -o IdentitiesOnly=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new 2>&1 | Out-String
|
|
Write-Host $test.TrimEnd()
|
|
if ($test -match 'Permission denied') {
|
|
Write-Host ''
|
|
Write-Host '[ERROR] Gitea rejected this key.' -ForegroundColor Red
|
|
Write-Host " SSH port $giteaPort failed. Gitea SSH is often NOT port 22." -ForegroundColor Yellow
|
|
Write-Host ' Check Gitea web -> SSH clone URL for the correct port.' -ForegroundColor Yellow
|
|
Write-Host ' Fix on Gitea web:' -ForegroundColor Yellow
|
|
Write-Host ' 1. eene_dashboard -> Settings -> Deploy Keys' -ForegroundColor Yellow
|
|
Write-Host ' 2. Delete old keys' -ForegroundColor Yellow
|
|
Write-Host ' 3. Add key: paste the ssh-ed25519 line from step [1/4] EXACTLY' -ForegroundColor Yellow
|
|
Write-Host ' 4. Enable write access, then save' -ForegroundColor Yellow
|
|
Write-Host ' Or: Gitea user Settings -> SSH Keys (same public key line)' -ForegroundColor Yellow
|
|
exit 1
|
|
}
|
|
if ($test -notmatch 'successfully authenticated') {
|
|
Write-Host ''
|
|
Write-Host '[ERROR] Unexpected SSH response. Check port and deploy key.' -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
Write-Host ' SSH OK' -ForegroundColor Green
|
|
|
|
Set-Location $projectRoot
|
|
|
|
Write-Host ''
|
|
Write-Host '[3/4] git remote gitea...' -ForegroundColor Yellow
|
|
$giteaUrl = "ssh://git@${giteaHost}:${giteaPort}/${giteaRepo}"
|
|
$env:GIT_SSH_COMMAND = "ssh -F `"$sshConfig`""
|
|
$remotes = @(git remote 2>$null)
|
|
if ($remotes -contains 'gitea') {
|
|
git remote set-url gitea $giteaUrl
|
|
} else {
|
|
git remote add gitea $giteaUrl
|
|
}
|
|
|
|
Write-Host ''
|
|
Write-Host '[4/4] commit and push...' -ForegroundColor Yellow
|
|
|
|
git add -A
|
|
$status = git status --porcelain
|
|
if ($status) {
|
|
git commit -m 'EENE Dashboard upload to Gitea'
|
|
} else {
|
|
Write-Host ' No changes to commit, push only.' -ForegroundColor DarkGray
|
|
}
|
|
|
|
git push -u gitea main
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host ''
|
|
Write-Host '[ERROR] push failed. Check branch: git branch' -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host ''
|
|
Write-Host '=== Done ===' -ForegroundColor Green
|
|
Write-Host 'Included: code, data/postgres, uploads, data/seed (backend/.env excluded — auto-created on start).' -ForegroundColor DarkGray
|
|
Write-Host ''
|