fix(deploy): add puppeteer env and refine ssh heredocs
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user