aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/deploy.yml47
1 files changed, 47 insertions, 0 deletions
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..88671f7
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,47 @@
+name: Deploy to VPS
+
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ build-and-deploy:
+ runs-on: ubuntu-latest
+
+ steps:
+ # 1) Checkout your code
+ - uses: actions/checkout@v3
+
+ # 2) Set up Node.js
+ - name: Setup Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: '18'
+
+ # 3) Install dependencies & build
+ - name: Install & Build
+ run: |
+ npm ci
+ npm run build # Vite’s default output dir is `dist/`
+
+ # 4) Copy build output to VPS via SCP
+ - name: Deploy build via SCP
+ uses: appleboy/scp-action@master
+ with:
+ host: ${{ secrets.VPS_HOST }}
+ username: ${{ secrets.VPS_USER }}
+ key: ${{ secrets.VPS_SSH_KEY }}
+ port: 22
+ source: "dist/*"
+ target: ${{ secrets.VPS_DESTINATION }}
+
+ # 5) Restart Nginx inside Docker on your VPS
+ - name: Restart Nginx (Docker)
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.VPS_HOST }}
+ username: ${{ secrets.VPS_USER }}
+ key: ${{ secrets.VPS_SSH_KEY }}
+ script: |
+ docker restart nginx