From d59feb3b5d33b76a5ab764ac8f440910041c1e57 Mon Sep 17 00:00:00 2001 From: Niko Date: Sat, 14 Jun 2025 22:55:07 +0200 Subject: [PATCH 1/5] One directory per branch --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 69cff0ff1..f58456501 100644 --- a/Makefile +++ b/Makefile @@ -47,14 +47,14 @@ build: pnpm pagefind preview: RELEASES_DIR = $(VPS_PREVIEW_PATH)/$(SAFE_BRANCH)/releases -preview: TARGET = $(RELEASES_DIR)/$(TIMESTAMP) +preview: TARGET = $(RELEASES_DIR)/$(SAFE_BRANCH) preview: @echo "Preview site URL: $(PREVIEW_SITE_URL)" echo $(TARGET) @echo "\n\n**** Deploying preview of a branch '$(BRANCH)' (safe: $(SAFE_BRANCH)) to $(TARGET)...\n\n" $(REMOTE_CMD) "mkdir -p $(TARGET)" rsync -avz --delete ./dist/ $(VPS_USER)@$(VPS_HOST):$(TARGET)/ - $(REMOTE_CMD) "cd $(RELEASES_DIR) && ln -snf $(TIMESTAMP) current" + $(REMOTE_CMD) "cd $(RELEASES_DIR) && ln -snf $(SAFE_BRANCH) current" @echo "\n\n**** Preview complete.\n\n" @echo "Open the preview site at: $(PREVIEW_SITE_URL)\n\n" From 5b214e16e96708e2dd6c8ab8d85f588f37b3a21c Mon Sep 17 00:00:00 2001 From: Niko Date: Sat, 21 Jun 2025 15:01:50 +0200 Subject: [PATCH 2/5] Update Makefile --- Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index f58456501..2274394f3 100644 --- a/Makefile +++ b/Makefile @@ -47,17 +47,21 @@ build: pnpm pagefind preview: RELEASES_DIR = $(VPS_PREVIEW_PATH)/$(SAFE_BRANCH)/releases -preview: TARGET = $(RELEASES_DIR)/$(SAFE_BRANCH) +preview: TARGET = $(RELEASES_DIR)/$(TIMESTAMP) preview: @echo "Preview site URL: $(PREVIEW_SITE_URL)" echo $(TARGET) @echo "\n\n**** Deploying preview of a branch '$(BRANCH)' (safe: $(SAFE_BRANCH)) to $(TARGET)...\n\n" $(REMOTE_CMD) "mkdir -p $(TARGET)" rsync -avz --delete ./dist/ $(VPS_USER)@$(VPS_HOST):$(TARGET)/ - $(REMOTE_CMD) "cd $(RELEASES_DIR) && ln -snf $(SAFE_BRANCH) current" + $(REMOTE_CMD) "cd $(RELEASES_DIR) && ln -snf $(TIMESTAMP) current" @echo "\n\n**** Preview complete.\n\n" @echo "Open the preview site at: $(PREVIEW_SITE_URL)\n\n" + @echo "\n**** Cleaning up old releases (keep latest 3, skip 'current')...\n" + $(REMOTE_CMD) 'cd $(RELEASES_DIR) && \ + ls -1dt */ | grep -v "^current/?$$" | grep -v "^$(TIMESTAMP)/$$" | tail -n +4 | xargs -r echo rm -rf' + ifeq ($(FORCE_DEPLOY), true) deploy: RELEASES_DIR = $(VPS_PROD_PATH)/releases From f0b170d8483b238f0b5fc86a68870fa3238cd795 Mon Sep 17 00:00:00 2001 From: Niko Date: Sat, 21 Jun 2025 15:09:57 +0200 Subject: [PATCH 3/5] Fmt --- Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 2274394f3..57d60d370 100644 --- a/Makefile +++ b/Makefile @@ -57,10 +57,8 @@ preview: $(REMOTE_CMD) "cd $(RELEASES_DIR) && ln -snf $(TIMESTAMP) current" @echo "\n\n**** Preview complete.\n\n" @echo "Open the preview site at: $(PREVIEW_SITE_URL)\n\n" - @echo "\n**** Cleaning up old releases (keep latest 3, skip 'current')...\n" - $(REMOTE_CMD) 'cd $(RELEASES_DIR) && \ - ls -1dt */ | grep -v "^current/?$$" | grep -v "^$(TIMESTAMP)/$$" | tail -n +4 | xargs -r echo rm -rf' + $(REMOTE_CMD) 'cd $(RELEASES_DIR) && ls -1dt */ | grep -v "^current/?$$" | grep -v "^$(TIMESTAMP)/$$" | tail -n +4 | xargs -r echo rm -rf' ifeq ($(FORCE_DEPLOY), true) From 39dcb5c594bf4ec719131a422c00a5ae9341ab88 Mon Sep 17 00:00:00 2001 From: Niko Date: Sat, 21 Jun 2025 15:15:58 +0200 Subject: [PATCH 4/5] Catch output --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 57d60d370..25152bccf 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,7 @@ preview: @echo "\n\n**** Preview complete.\n\n" @echo "Open the preview site at: $(PREVIEW_SITE_URL)\n\n" @echo "\n**** Cleaning up old releases (keep latest 3, skip 'current')...\n" - $(REMOTE_CMD) 'cd $(RELEASES_DIR) && ls -1dt */ | grep -v "^current/?$$" | grep -v "^$(TIMESTAMP)/$$" | tail -n +4 | xargs -r echo rm -rf' + $(REMOTE_CMD) bash -c "'cd $(RELEASES_DIR) && ls -1dt */ | grep -v \"^current/?$$\" | grep -v \"^$(TIMESTAMP)/$$\" | tail -n +4 | xargs -r echo rm -rf'" | tee /dev/stdout ifeq ($(FORCE_DEPLOY), true) From 87583b1a204eda3a72dfa7012d89187f2131ed82 Mon Sep 17 00:00:00 2001 From: Niko Date: Sat, 21 Jun 2025 16:48:30 +0200 Subject: [PATCH 5/5] Update command --- Makefile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 25152bccf..98763ec06 100644 --- a/Makefile +++ b/Makefile @@ -57,8 +57,16 @@ preview: $(REMOTE_CMD) "cd $(RELEASES_DIR) && ln -snf $(TIMESTAMP) current" @echo "\n\n**** Preview complete.\n\n" @echo "Open the preview site at: $(PREVIEW_SITE_URL)\n\n" - @echo "\n**** Cleaning up old releases (keep latest 3, skip 'current')...\n" - $(REMOTE_CMD) bash -c "'cd $(RELEASES_DIR) && ls -1dt */ | grep -v \"^current/?$$\" | grep -v \"^$(TIMESTAMP)/$$\" | tail -n +4 | xargs -r echo rm -rf'" | tee /dev/stdout + @echo "\n**** Cleaning up old releases (keep latest 1, skip 'current')...\n" + $(REMOTE_CMD) "bash -c '\ +cd $(RELEASES_DIR) && \ +echo \"[INFO] Cleaning:\" && \ +ls -1dt */ \ + | sed \"s:/*\\\$$::\" \ + | grep -v ^current\\\$$ \ + | grep -v ^$(TIMESTAMP)\\\$$ \ + | tail -n +2 \ + | xargs -r -I{} echo rm -rf \"{}\"'" ifeq ($(FORCE_DEPLOY), true)