This commit is contained in:
2026-06-28 12:55:22 +10:00
parent ea92821ea0
commit aa03af1faa
3 changed files with 97 additions and 14 deletions
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
# Newbury Exhibit — deploy box runner (pull-only, never pushes).
# Forces local working copy to match origin/dev, then (re)starts the server.
set -e
BRANCH=dev
PORT=${PORT:-34034}
cd "$(dirname "$0")"
echo "== Fetching origin/$BRANCH =="
git fetch origin "$BRANCH"
echo "== Forcing working copy to origin/$BRANCH (discards any local changes) =="
git reset --hard "origin/$BRANCH"
# install deps only if package files changed since last run
if [ package.json -nt .deploy-installed ] || [ package-lock.json -nt .deploy-installed ] || [ ! -f .deploy-installed ]; then
echo "== Installing dependencies =="
npm install --no-audit --no-fund
touch .deploy-installed
else
echo "== Dependencies unchanged, skipping npm install =="
fi
# free the port if something is already on it
if command -v fuser >/dev/null 2>&1; then
fuser -k ${PORT}/tcp 2>/dev/null || true
sleep 1
fi
echo "== Starting server on port ${PORT} =="
PORT=${PORT} npm start
+25
View File
@@ -0,0 +1,25 @@
@echo off
REM Manual push helper: pushes whatever is already committed in _deploy.
REM Tries HTTPS first, then direct LAN. Use after a failed push, or to re-push.
setlocal
set OWNER=jessikitty
set REPO=newbury-exhibit
set BRANCH=dev
set LAN_REMOTE=http://10.0.0.55:3000/%OWNER%/%REPO%.git
set SRC=%~dp0
if not exist "%SRC%_deploy" (
echo No _deploy checkout found. Run upload-to-gitea.bat first.
pause & exit /b 1
)
pushd "%SRC%_deploy"
echo Pushing %BRANCH% via HTTPS...
git push origin %BRANCH%
if errorlevel 1 (
echo HTTPS failed, trying direct LAN...
git push "%LAN_REMOTE%" %BRANCH%
if errorlevel 1 ( echo ERROR: push failed on both. & popd & pause & exit /b 1 )
)
echo Done.
popd
pause
+39 -14
View File
@@ -1,36 +1,42 @@
@echo off @echo off
REM ============================================================ REM ============================================================
REM Newbury Exhibit -> Gitea uploader REM Newbury Exhibit -> Gitea uploader
REM Wipe-and-re-clone _deploy checkout, copy tree, commit, push. REM Default: HTTPS via DNS. Auto-fallback: direct LAN (bypasses nginx).
REM Mirrors the newbury-nights deploy pattern. REM Clean re-clone of dev, copy tree, show status, commit, push.
REM ============================================================ REM ============================================================
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
set GITEA_HOST=gitea.hideawaygaming.com.au set GITEA_HOST=gitea.hideawaygaming.com.au
set LAN_URL=http://10.0.0.55:3000
set OWNER=jessikitty set OWNER=jessikitty
set REPO=newbury-exhibit set REPO=newbury-exhibit
set BRANCH=dev set BRANCH=dev
set SRC=%~dp0 set SRC=%~dp0
set HTTPS_REMOTE=https://%GITEA_HOST%/%OWNER%/%REPO%.git
set LAN_REMOTE=%LAN_URL%/%OWNER%/%REPO%.git
echo. echo.
echo === Newbury Exhibit deploy === echo === Newbury Exhibit deploy ===
echo Source: %SRC% echo Source: %SRC%
echo Target: https://%GITEA_HOST%/%OWNER%/%REPO% (branch %BRANCH%) echo Target: %HTTPS_REMOTE% (branch %BRANCH%)
echo Fallback: %LAN_REMOTE%
echo. echo.
REM --- fresh _deploy checkout --- REM --- fresh _deploy checkout (clone via HTTPS; fall back to LAN) ---
if exist "%SRC%_deploy" ( if exist "%SRC%_deploy" (
echo Removing old _deploy checkout... echo Removing old _deploy checkout...
rmdir /s /q "%SRC%_deploy" rmdir /s /q "%SRC%_deploy"
) )
echo Cloning %BRANCH%... echo Cloning %BRANCH% via HTTPS...
git clone -b %BRANCH% "https://%GITEA_HOST%/%OWNER%/%REPO%.git" "%SRC%_deploy" git clone -b %BRANCH% "%HTTPS_REMOTE%" "%SRC%_deploy"
if errorlevel 1 ( if errorlevel 1 (
echo ERROR: clone failed. Check credentials / branch exists. echo HTTPS clone failed, trying direct LAN...
pause & exit /b 1 git clone -b %BRANCH% "%LAN_REMOTE%" "%SRC%_deploy"
if errorlevel 1 ( echo ERROR: clone failed on both remotes. & pause & exit /b 1 )
) )
REM --- auto-detect git identity from existing global config --- REM --- auto-detect git identity from global config ---
for /f "tokens=*" %%a in ('git config --global user.name') do set GITNAME=%%a for /f "tokens=*" %%a in ('git config --global user.name') do set GITNAME=%%a
for /f "tokens=*" %%a in ('git config --global user.email') do set GITEMAIL=%%a for /f "tokens=*" %%a in ('git config --global user.email') do set GITEMAIL=%%a
if "!GITNAME!"=="" set GITNAME=jessikitty if "!GITNAME!"=="" set GITNAME=jessikitty
@@ -43,6 +49,9 @@ robocopy "%SRC%." "%SRC%_deploy" /E /XD "_deploy" "node_modules" ".git" /XF "*.l
pushd "%SRC%_deploy" pushd "%SRC%_deploy"
git config user.name "!GITNAME!" git config user.name "!GITNAME!"
git config user.email "!GITEMAIL!" git config user.email "!GITEMAIL!"
REM larger buffer + HTTP/1.1 makes pushes more robust through a reverse proxy
git config http.postBuffer 524288000
git config http.version HTTP/1.1
echo. echo.
echo === Staged changes === echo === Staged changes ===
@@ -56,11 +65,27 @@ if "!MSG!"=="" set MSG=Update exhibit
git commit -m "!MSG!" git commit -m "!MSG!"
if errorlevel 1 ( if errorlevel 1 (
echo Nothing to commit, or commit failed. echo Nothing to commit, or commit failed.
) else ( popd & pause & exit /b 0
git push origin %BRANCH%
if errorlevel 1 ( echo ERROR: push failed. & popd & pause & exit /b 1 )
echo.
echo === Pushed to %BRANCH% successfully ===
) )
echo.
echo Pushing via HTTPS...
git push origin %BRANCH%
if errorlevel 1 (
echo.
echo HTTPS push failed ^(proxy/500?^). Retrying direct LAN: %LAN_REMOTE%
git push "%LAN_REMOTE%" %BRANCH%
if errorlevel 1 (
echo.
echo ERROR: push failed on both remotes.
echo Your commit is saved in _deploy - you can retry manually:
echo cd "%SRC%_deploy"
echo git push origin %BRANCH%
echo git push "%LAN_REMOTE%" %BRANCH%
popd & pause & exit /b 1
)
)
echo.
echo === Pushed to %BRANCH% successfully ===
popd popd
pause pause