fix(deploy): add puppeteer env and refine ssh heredocs

This commit is contained in:
2026-03-03 20:42:50 +01:00
parent e7116f75fc
commit 9be7cb7ac9

View File

@@ -409,14 +409,18 @@ jobs:
else else
SITE_DIR="/home/deploy/sites/branch.klz-cables.com/$SLUG" SITE_DIR="/home/deploy/sites/branch.klz-cables.com/$SLUG"
fi fi
# Transfer files
ssh root@alpha.mintel.me "mkdir -p $SITE_DIR" ssh root@alpha.mintel.me "mkdir -p $SITE_DIR"
scp .env.deploy root@alpha.mintel.me:$SITE_DIR/$ENV_FILE scp .env.deploy root@alpha.mintel.me:$SITE_DIR/$ENV_FILE
scp docker-compose.yml root@alpha.mintel.me:$SITE_DIR/docker-compose.yml scp docker-compose.yml root@alpha.mintel.me:$SITE_DIR/docker-compose.yml
ssh root@alpha.mintel.me "cd $SITE_DIR && echo '$REGISTRY_PASS' | docker login git.infra.mintel.me -u '$REGISTRY_USER' --password-stdin" # Execute remote commands via Heredoc to ensure local variables are expanded
ssh root@alpha.mintel.me "cd $SITE_DIR && docker compose -p '${{ needs.prepare.outputs.project_name }}' --env-file '$ENV_FILE' pull" ssh root@alpha.mintel.me <<EOF
ssh root@alpha.mintel.me "cd $SITE_DIR && docker compose -p '${{ needs.prepare.outputs.project_name }}' --env-file '$ENV_FILE' up -d --remove-orphans" cd $SITE_DIR
echo "$REGISTRY_PASS" | docker login git.infra.mintel.me -u "$REGISTRY_USER" --password-stdin
docker compose -p "${{ needs.prepare.outputs.project_name }}" --env-file "$ENV_FILE" pull
docker compose -p "${{ needs.prepare.outputs.project_name }}" --env-file "$ENV_FILE" up -d --remove-orphans
EOF
# Sanitize Payload Migrations: Replace 'dev' push entries with proper migration names. # Sanitize Payload Migrations: Replace 'dev' push entries with proper migration names.
# Without this, Payload prompts interactively for confirmation and blocks forever in Docker. # Without this, Payload prompts interactively for confirmation and blocks forever in Docker.
@@ -448,22 +452,23 @@ jobs:
done done
if [ -n "$VALUES" ]; then if [ -n "$VALUES" ]; then
ssh root@alpha.mintel.me "docker exec $DB_CONTAINER psql -U $REMOTE_DB_USER -d $REMOTE_DB_NAME -c \" ssh root@alpha.mintel.me <<EOF
DO \\\$\\\$ BEGIN docker exec $DB_CONTAINER psql -U $REMOTE_DB_USER -d $REMOTE_DB_NAME -c "
DELETE FROM payload_migrations WHERE batch = -1; DO \\\$\\\$ BEGIN
INSERT INTO payload_migrations (name, batch) DELETE FROM payload_migrations WHERE batch = -1;
SELECT name, batch FROM (VALUES $VALUES) AS v(name, batch) INSERT INTO payload_migrations (name, batch)
WHERE NOT EXISTS (SELECT 1 FROM payload_migrations pm WHERE pm.name = v.name); SELECT name, batch FROM (VALUES $VALUES) AS v(name, batch)
EXCEPTION WHEN undefined_table THEN WHERE NOT EXISTS (SELECT 1 FROM payload_migrations pm WHERE pm.name = v.name);
RAISE NOTICE 'payload_migrations table does not exist yet — skipping sanitization'; EXCEPTION WHEN undefined_table THEN
END \\\$\\\$; RAISE NOTICE 'payload_migrations table does not exist yet — skipping sanitization';
\"" || echo "⚠️ Migration sanitization skipped (table may not exist yet)" END \\\$\\\$;
"
EOF
fi fi
# Restart app to pick up clean migration state # Restart app to pick up clean migration state
APP_CONTAINER="${{ needs.prepare.outputs.project_name }}-klz-app-1" APP_CONTAINER="${{ needs.prepare.outputs.project_name }}-klz-app-1"
ssh root@alpha.mintel.me "docker restart $APP_CONTAINER" ssh root@alpha.mintel.me "docker restart $APP_CONTAINER"
ssh root@alpha.mintel.me "docker system prune -f --filter 'until=24h'" ssh root@alpha.mintel.me "docker system prune -f --filter 'until=24h'"
- name: 🧹 Post-Deploy Cleanup (Runner) - name: 🧹 Post-Deploy Cleanup (Runner)