Stop rebuilding AI service on every deploy

This commit is contained in:
2026-04-09 19:51:32 +02:00
parent b8c91a22b6
commit 6fb7b57b09
2 changed files with 26 additions and 6 deletions
+1
View File
@@ -64,6 +64,7 @@ jobs:
host: ${{ secrets.PROD_HOST }}
username: ${{ secrets.PROD_USER }}
key: ${{ secrets.PROD_SSH_KEY }}
command_timeout: 40m
script: |
set -euo pipefail
if [ ! -d /opt/job-tracker/app/.git ]; then
+25 -6
View File
@@ -22,28 +22,47 @@ fi
export APP_VERSION="${APP_VERSION:-0.0.0}"
export APP_COMMIT_SHA="${APP_COMMIT_SHA:-unknown}"
export APP_BUILD_STAMP="${APP_BUILD_STAMP:-unknown}"
export DEPLOY_BUILD_AI_SERVICE="${DEPLOY_BUILD_AI_SERVICE:-false}"
compose() {
docker compose "$@"
}
build_with_recovery() {
if compose build; then
build_core_with_recovery() {
if compose build backend frontend; then
return 0
fi
echo "docker compose build failed. Attempting one cleanup + retry because layer extraction can fail on constrained hosts."
echo "docker compose build for core services failed. Attempting one cleanup + retry because layer extraction can fail on constrained hosts."
docker builder prune -af >/dev/null 2>&1 || true
docker system prune -f >/dev/null 2>&1 || true
compose build --no-cache backend frontend
}
build_ai_with_recovery() {
if compose build ai-service; then
return 0
fi
echo "docker compose build for ai-service failed. Attempting one cleanup + retry because layer extraction can fail on constrained hosts."
docker image rm -f app-ai-service:latest 2>/dev/null || true
docker builder prune -af >/dev/null 2>&1 || true
docker system prune -f >/dev/null 2>&1 || true
compose build --no-cache ai-service
compose build backend frontend
}
compose pull || true
build_with_recovery
build_core_with_recovery
if [ "$DEPLOY_BUILD_AI_SERVICE" = "true" ]; then
build_ai_with_recovery
else
echo "Skipping ai-service rebuild during deploy (set DEPLOY_BUILD_AI_SERVICE=true to rebuild it)."
fi
# Force recreation so updated port mappings, env vars, and container config always apply on deploy.
compose up -d --force-recreate --remove-orphans
compose up -d --force-recreate --remove-orphans backend frontend
if [ "$DEPLOY_BUILD_AI_SERVICE" = "true" ]; then
compose up -d --force-recreate ai-service ollama
fi
if [ -n "${OLLAMA_MODEL:-}" ]; then
echo "Post-deploy Ollama warmup enabled for model: ${OLLAMA_MODEL}"