@@ -24,31 +24,31 @@ jobs:
2424 - name : 🏗️ Build Next.js App
2525 run : npm run build
2626
27- - name : 📂 Prepare build-output folder (exclude node_modules)
27+ - name : 📂 Prepare build-output folder
2828 run : |
2929 mkdir -p build-output
30- rsync -av --progress ./ build-output/ \
31- --include '.next/***' \
32- --include '.env*' \
33- --exclude 'node_modules' \
34- --exclude '.git' \
35- --exclude '.github' \
36- --exclude 'build-output' \
37- --exclude '*.log'
30+ cp -r .next package.json package-lock.json next.config.* tsconfig.* public/ build-output/ 2>/dev/null || true
3831 echo "📁 Build output content:"
3932 ls -la build-output
4033
41- - name : 📤 Upload app files to server
34+ - name : 🗜️ Compress build-output
35+ run : |
36+ cd build-output
37+ tar -czf ../build-output.tar.gz .
38+ cd ..
39+ echo "✅ build-output.tar.gz created:"
40+ ls -lh build-output.tar.gz
41+
42+ - name : 📤 Upload compressed build to server
4243 uses : appleboy/scp-action@v0.1.7
4344 with :
4445 host : ${{ secrets.SSH_HOST }}
4546 username : ${{ secrets.SSH_USER }}
4647 key : ${{ secrets.SSH_PRIVATE_KEY }}
4748 passphrase : ${{ secrets.SSH_PASSPHRASE }}
48- source : " build-output/** "
49+ source : " build-output.tar.gz "
4950 target : ${{ secrets.DEPLOY_DIR }}
5051 overwrite : true
51- strip_components : 0
5252
5353 - name : 📦 Upload node_modules to nodevenv
5454 uses : appleboy/scp-action@v0.1.7
@@ -57,33 +57,31 @@ jobs:
5757 username : ${{ secrets.SSH_USER }}
5858 key : ${{ secrets.SSH_PRIVATE_KEY }}
5959 passphrase : ${{ secrets.SSH_PASSPHRASE }}
60- source : " node_modules/** "
60+ source : " node_modules/*"
6161 target : ${{ secrets.NODE_MODULES_DIR }}
6262 overwrite : true
6363 strip_components : 0
6464
65- - name : ⚙️ Deploy on server
65+ - name : ⚙️ Extract & Deploy on server
6666 uses : appleboy/ssh-action@v1.2.0
6767 with :
6868 host : ${{ secrets.SSH_HOST }}
6969 username : ${{ secrets.SSH_USER }}
7070 key : ${{ secrets.SSH_PRIVATE_KEY }}
7171 passphrase : ${{ secrets.SSH_PASSPHRASE }}
7272 script : |
73- set -e
7473 echo "🚀 Starting deployment inside Node.js environment..."
7574 bash -lc '
7675 echo "🔧 Activating environment..."
77- source /home/devstudi/nodevenv/autodeploy/22/bin/activate
78- cd ${{ secrets.DEPLOY_DIR }}
76+ source ${{ secrets.NODE_ENV_PATH }}
7977
80- echo "📦 Moving files out of build-output..."
81- if [ -d "build-output" ]; then
82- mv build-output/* . || true
83- rm -rf build-output
84- fi
78+ cd ${{ secrets.DEPLOY_DIR }}
79+ echo "📦 Extracting build-output.tar.gz..."
80+ tar -xzf build-output.tar.gz
81+ rm -f build-output.tar.gz
8582
8683 echo "♻️ Restarting Node.js app..."
84+ mkdir -p tmp
8785 touch tmp/restart.txt || true
8886
8987 echo "✅ Deployment complete!"
0 commit comments