Skip to content

Commit 4bebbd5

Browse files
committed
fix deploy
1 parent 514a0a9 commit 4bebbd5

1 file changed

Lines changed: 31 additions & 27 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,41 +27,41 @@ jobs:
2727
ls -ld .next/standalone || true # Hanya cek direktori induk
2828
ls -R .next/static || true
2929
30-
- name: 4a. Transfer File Server (Standalone & Config)
31-
uses: appleboy/scp-action@v0.1.7
32-
with:
33-
host: ${{ secrets.SSH_HOST }}
34-
username: ${{ secrets.SSH_USER }}
35-
key: ${{ secrets.SSH_PRIVATE_KEY }}
36-
passphrase: ${{ secrets.SSH_PASSPHRASE }}
37-
port: 22
38-
rm: false
39-
debug: true
40-
# Hanya transfer server file dan folder standalone di sini
41-
source: |
42-
.next/standalone
43-
package.json
44-
app.js
45-
target: ${{ secrets.DEPLOY_DIR }}
30+
- name: 4. Buat Deployment Tarball
31+
run: |
32+
set -e # Hentikan eksekusi jika perintah tar gagal
33+
echo "Membuat deployment tarball: deployment.tar.gz"
34+
# Membuat tarball berisi semua yang dibutuhkan untuk standalone deployment
35+
# --exclude='node_modules' (node_modules di root tidak perlu ditransfer)
36+
tar -zcf deployment.tar.gz \
37+
--exclude='node_modules' \
38+
.next/standalone \
39+
.next/static \
40+
package.json \
41+
app.js \
42+
public
43+
ls -l deployment.tar.gz # Verifikasi file dibuat dan ukurannya > 0
4644
47-
- name: 4b. Transfer File Statis (Static & Public)
45+
- name: 4b. Verifikasi Tarball Sebelum Transfer
46+
run: |
47+
echo "Isi direktori kerja sebelum SCP:"
48+
ls -l deployment.tar.gz
49+
50+
- name: 5. Transfer File (Single Tarball) ke cPanel (via SCP)
4851
uses: appleboy/scp-action@v0.1.7
4952
with:
5053
host: ${{ secrets.SSH_HOST }}
5154
username: ${{ secrets.SSH_USER }}
5255
key: ${{ secrets.SSH_PRIVATE_KEY }}
5356
passphrase: ${{ secrets.SSH_PASSPHRASE }}
5457
port: 22
55-
# rm: false di sini karena kita ingin membersihkan file di Langkah 5
5658
rm: false
5759
debug: true
58-
# Hanya transfer aset statis di sini
59-
source: |
60-
.next/static
61-
public
60+
# HANYA transfer satu file: tarball yang sudah kita buat
61+
source: deployment.tar.gz
6262
target: ${{ secrets.DEPLOY_DIR }}
6363

64-
- name: 5. Eksekusi Perintah di cPanel (via SSH)
64+
- name: 6. Eksekusi Perintah di cPanel (via SSH)
6565
uses: appleboy/ssh-action@v1.0.3
6666
with:
6767
host: ${{ secrets.SSH_HOST }}
@@ -75,8 +75,12 @@ jobs:
7575
source ${{ secrets.NODE_ENV_PATH }}
7676
cd ${{ secrets.DEPLOY_DIR }}
7777
78-
# 2. EKSTRAKSI DAN PEMINDAHAN KONTEN (Langkah Kritis)
79-
# Karena SCP menyalin folder .next/standalone, kita harus memindahkan isinya ke root.
78+
# 2. EKSTRAKSI TARBALL
79+
echo "Mengekstrak deployment.tar.gz..."
80+
tar -xzf deployment.tar.gz
81+
rm deployment.tar.gz # Hapus file tarball setelah diekstrak
82+
83+
# 3. EKSTRAKSI DAN PEMINDAHAN KONTEN (Langkah Kritis)
8084
echo "Memindahkan konten standalone ke root aplikasi..."
8185
8286
# Pindahkan KONTEN dari .next/standalone (server files, node_modules internal) ke DEPLOY_DIR
@@ -85,12 +89,12 @@ jobs:
8589
# Hapus folder sementara .next/standalone
8690
rm -rf .next/standalone
8791
88-
# 3. Instal Dependencies Produksi ke Path Khusus cPanel
92+
# 4. Instal Dependencies Produksi ke Path Khusus cPanel
8993
echo "Memastikan node_modules diarahkan ke path yang benar: ${{ secrets.NPM_PREFIX_DIR }}/lib/node_modules"
9094
npm config set prefix ${{ secrets.NPM_PREFIX_DIR }}
9195
npm install --production
9296
93-
# 4. Restart Aplikasi
97+
# 5. Restart Aplikasi
9498
echo "Restart Aplikasi (Trigger cPanel App Manager)..."
9599
touch app.js
96100

0 commit comments

Comments
 (0)