From ba9532eb82eb33e54cee1b3bfb6b440a7911d34d Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 17 Jun 2026 13:27:28 +0000 Subject: [PATCH 1/7] feat: add dev pipeline with branch-specific deploy --- .woodpecker/.woodpecker.yml | 49 +++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/.woodpecker/.woodpecker.yml b/.woodpecker/.woodpecker.yml index 3477fa4..848465d 100644 --- a/.woodpecker/.woodpecker.yml +++ b/.woodpecker/.woodpecker.yml @@ -1,5 +1,44 @@ -steps: - test: - image: alpine - commands: - - echo "Hello" +when: + event: [push, manual] + +steps: + install: + image: node:20 + commands: + - cd server && npm ci + + deploy-main: + image: alpine:latest + environment: + DEPLOY_KEY: + from_secret: deploy_key + commands: + - apk add --no-cache openssh rsync + - mkdir -p /ssh + - echo "$DEPLOY_KEY" > /ssh/deploy_key + - chmod 600 /ssh/deploy_key + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env ./server/ root@192.168.1.88:/opt/shop/server/server/ + - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.88 "cd /opt/shop/server/server && npm install 2>&1 | tail -3 && systemctl restart shop-server" + depends_on: [install] + when: + branch: main + + deploy-dev: + image: alpine:latest + environment: + DEPLOY_KEY: + from_secret: deploy_key + SERVER_ENV_DEV: + from_secret: server_env_dev + commands: + - apk add --no-cache openssh rsync + - mkdir -p /ssh + - echo "$DEPLOY_KEY" > /ssh/deploy_key + - chmod 600 /ssh/deploy_key + - echo "$SERVER_ENV_DEV" > /tmp/.env + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env ./server/ root@192.168.1.118:/opt/shop/server/server/ + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz /tmp/.env root@192.168.1.118:/opt/shop/server/server/.env + - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.118 "cd /opt/shop/server/server && npm install 2>&1 | tail -3 && systemctl restart shop-server" + depends_on: [install] + when: + branch: dev From 2f02fee2683866093b0a5f7d1e04a4ac806b64d7 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 17 Jun 2026 13:44:06 +0000 Subject: [PATCH 2/7] fix: use npm install instead of npm ci --- .woodpecker/.woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/.woodpecker.yml b/.woodpecker/.woodpecker.yml index 848465d..b5184f1 100644 --- a/.woodpecker/.woodpecker.yml +++ b/.woodpecker/.woodpecker.yml @@ -5,7 +5,7 @@ steps: install: image: node:20 commands: - - cd server && npm ci + - cd server && npm install deploy-main: image: alpine:latest From b867280f70dcf5816303a6f9b158e3dc51ce6ef9 Mon Sep 17 00:00:00 2001 From: Admin Date: Wed, 17 Jun 2026 13:45:52 +0000 Subject: [PATCH 3/7] test: trigger server dev pipeline --- test-server-dev.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test-server-dev.txt diff --git a/test-server-dev.txt b/test-server-dev.txt new file mode 100644 index 0000000..ff5d043 --- /dev/null +++ b/test-server-dev.txt @@ -0,0 +1 @@ +trigger-1781703952 From 63ef4836a1a49f0401b42bf6c8783a1d2029527a Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 17 Jun 2026 15:25:33 +0000 Subject: [PATCH 4/7] fix: preserve uploads and db from --delete --- .woodpecker/.woodpecker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.woodpecker/.woodpecker.yml b/.woodpecker/.woodpecker.yml index b5184f1..6361f79 100644 --- a/.woodpecker/.woodpecker.yml +++ b/.woodpecker/.woodpecker.yml @@ -17,7 +17,7 @@ steps: - mkdir -p /ssh - echo "$DEPLOY_KEY" > /ssh/deploy_key - chmod 600 /ssh/deploy_key - - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env ./server/ root@192.168.1.88:/opt/shop/server/server/ + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude uploads --exclude 'prisma/*.db' ./server/ root@192.168.1.88:/opt/shop/server/server/ - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.88 "cd /opt/shop/server/server && npm install 2>&1 | tail -3 && systemctl restart shop-server" depends_on: [install] when: @@ -36,7 +36,7 @@ steps: - echo "$DEPLOY_KEY" > /ssh/deploy_key - chmod 600 /ssh/deploy_key - echo "$SERVER_ENV_DEV" > /tmp/.env - - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env ./server/ root@192.168.1.118:/opt/shop/server/server/ + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude uploads --exclude 'prisma/*.db' ./server/ root@192.168.1.118:/opt/shop/server/server/ - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz /tmp/.env root@192.168.1.118:/opt/shop/server/server/.env - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.118 "cd /opt/shop/server/server && npm install 2>&1 | tail -3 && systemctl restart shop-server" depends_on: [install] From 07cb8717cb6ca4c2a224835e279ffa34fc77af1b Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 17 Jun 2026 15:38:37 +0000 Subject: [PATCH 5/7] fix: proper excludes + prisma migrate on deploy --- .woodpecker/.woodpecker.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.woodpecker/.woodpecker.yml b/.woodpecker/.woodpecker.yml index 6361f79..f91b11e 100644 --- a/.woodpecker/.woodpecker.yml +++ b/.woodpecker/.woodpecker.yml @@ -17,8 +17,8 @@ steps: - mkdir -p /ssh - echo "$DEPLOY_KEY" > /ssh/deploy_key - chmod 600 /ssh/deploy_key - - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude uploads --exclude 'prisma/*.db' ./server/ root@192.168.1.88:/opt/shop/server/server/ - - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.88 "cd /opt/shop/server/server && npm install 2>&1 | tail -3 && systemctl restart shop-server" + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude .dev_env --exclude uploads --exclude '*.db' ./server/ root@192.168.1.88:/opt/shop/server/server/ + - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.88 "cd /opt/shop/server/server && npm ci 2>&1 | tail -3 && npx prisma generate 2>&1 | tail -2 && npx prisma migrate deploy 2>&1 | tail -5 && systemctl restart shop-server" depends_on: [install] when: branch: main @@ -36,9 +36,9 @@ steps: - echo "$DEPLOY_KEY" > /ssh/deploy_key - chmod 600 /ssh/deploy_key - echo "$SERVER_ENV_DEV" > /tmp/.env - - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude uploads --exclude 'prisma/*.db' ./server/ root@192.168.1.118:/opt/shop/server/server/ + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude .dev_env --exclude uploads --exclude '*.db' ./server/ root@192.168.1.118:/opt/shop/server/server/ - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz /tmp/.env root@192.168.1.118:/opt/shop/server/server/.env - - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.118 "cd /opt/shop/server/server && npm install 2>&1 | tail -3 && systemctl restart shop-server" + - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.118 "cd /opt/shop/server/server && npm ci 2>&1 | tail -3 && npx prisma generate 2>&1 | tail -2 && npx prisma migrate deploy 2>&1 | tail -5 && systemctl restart shop-server" depends_on: [install] when: branch: dev From 7dbc5706ca9eeac607fa5eb368fdad1126a2e3fb Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 17 Jun 2026 16:03:10 +0000 Subject: [PATCH 6/7] fix: add shared/ rsync for dev deploy --- .woodpecker/.woodpecker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.woodpecker/.woodpecker.yml b/.woodpecker/.woodpecker.yml index f91b11e..2388564 100644 --- a/.woodpecker/.woodpecker.yml +++ b/.woodpecker/.woodpecker.yml @@ -37,6 +37,7 @@ steps: - chmod 600 /ssh/deploy_key - echo "$SERVER_ENV_DEV" > /tmp/.env - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude .dev_env --exclude uploads --exclude '*.db' ./server/ root@192.168.1.118:/opt/shop/server/server/ + - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude .git --exclude node_modules ./shared/ root@192.168.1.118:/opt/shop/server/shared/ - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz /tmp/.env root@192.168.1.118:/opt/shop/server/server/.env - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.118 "cd /opt/shop/server/server && npm ci 2>&1 | tail -3 && npx prisma generate 2>&1 | tail -2 && npx prisma migrate deploy 2>&1 | tail -5 && systemctl restart shop-server" depends_on: [install] From 4ca28c37ca9b2ce581e08c501eeabdf9f0e9e56c Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 17 Jun 2026 16:23:40 +0000 Subject: [PATCH 7/7] dev pipeline: remove SERVER_ENV_DEV secret, .env stays on server --- .woodpecker/.woodpecker.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.woodpecker/.woodpecker.yml b/.woodpecker/.woodpecker.yml index 2388564..1cfc176 100644 --- a/.woodpecker/.woodpecker.yml +++ b/.woodpecker/.woodpecker.yml @@ -28,17 +28,13 @@ steps: environment: DEPLOY_KEY: from_secret: deploy_key - SERVER_ENV_DEV: - from_secret: server_env_dev commands: - apk add --no-cache openssh rsync - mkdir -p /ssh - echo "$DEPLOY_KEY" > /ssh/deploy_key - chmod 600 /ssh/deploy_key - - echo "$SERVER_ENV_DEV" > /tmp/.env - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude node_modules --exclude .env --exclude .dev_env --exclude uploads --exclude '*.db' ./server/ root@192.168.1.118:/opt/shop/server/server/ - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz --delete --exclude .git --exclude node_modules ./shared/ root@192.168.1.118:/opt/shop/server/shared/ - - rsync -e "ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no" -avz /tmp/.env root@192.168.1.118:/opt/shop/server/server/.env - ssh -i /ssh/deploy_key -o StrictHostKeyChecking=no root@192.168.1.118 "cd /opt/shop/server/server && npm ci 2>&1 | tail -3 && npx prisma generate 2>&1 | tail -2 && npx prisma migrate deploy 2>&1 | tail -5 && systemctl restart shop-server" depends_on: [install] when: