1
- name : Deploy to S3 Tutor Prod
1
+ name : Deploy to Custom Server Tutor Prod
2
2
on :
3
3
push :
4
4
branches :
@@ -15,12 +15,12 @@ jobs:
15
15
- name : Setup Node.js
16
16
uses : actions/setup-node@v3
17
17
with :
18
- node-version-file : " .tool-versions"
18
+ node-version-file : ' .tool-versions'
19
19
20
20
- name : Cache npm packages
21
21
uses : actions/cache@v2
22
22
with :
23
- path : " **/node_modules"
23
+ path : ' **/node_modules'
24
24
key : ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
25
25
restore-keys : |
26
26
${{ runner.os }}-
@@ -31,14 +31,47 @@ jobs:
31
31
- name : Build Application
32
32
run : npm run build
33
33
34
- - uses : jakejarvis/s3-sync-action@master
35
- name : Upload App to S3 Bucket
34
+ - name : Clean old backups
35
+ uses : appleboy/ssh-action@master
36
36
with :
37
- args : --follow-symlinks --delete
38
- env :
39
- AWS_S3_BUCKET : ${{ env.AWS_S3_BUCKET_NAME }}
40
- AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
41
- AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
42
- AWS_REGION : " ap-northeast-2"
43
- SOURCE_DIR : " dist"
44
- DEST_DIR : " tutor"
37
+ host : ${{ secrets.SERVER_HOST }}
38
+ username : ${{ secrets.SERVER_USERNAME }}
39
+ password : ${{ secrets.SERVER_PASSWORD }}
40
+ port : ${{ secrets.PORT }}
41
+ script : |
42
+ cd /mnt/i32g-nfs/pluto-frontend
43
+ ls -dt backup_* | tail -n +4 | xargs rm -rf
44
+
45
+ - name : Backup target directory
46
+ uses : appleboy/ssh-action@master
47
+ with :
48
+ host : ${{ secrets.SERVER_HOST }}
49
+ username : ${{ secrets.SERVER_USERNAME }}
50
+ password : ${{ secrets.SERVER_PASSWORD }}
51
+ port : ${{ secrets.PORT }}
52
+ script : |
53
+ TIMESTAMP=$(date +'%Y%m%d%H%M%S')
54
+ BACKUP_DIR="/mnt/i32g-nfs/pluto-frontend/backup_public_$TIMESTAMP"
55
+ mkdir -p $BACKUP_DIR
56
+ cp -r /mnt/i32g-nfs/pluto-frontend/public/* $BACKUP_DIR
57
+
58
+ - name : Clean target directory
59
+ uses : appleboy/ssh-action@master
60
+ with :
61
+ host : ${{ secrets.SERVER_HOST }}
62
+ username : ${{ secrets.SERVER_USERNAME }}
63
+ password : ${{ secrets.SERVER_PASSWORD }}
64
+ port : ${{ secrets.PORT }}
65
+ script : |
66
+ rm -rf /mnt/i32g-nfs/pluto-frontend/public/*
67
+
68
+ - name : Upload App to Server
69
+
70
+ with :
71
+ host : ${{ secrets.SERVER_HOST }}
72
+ username : ${{ secrets.SERVER_USERNAME }}
73
+ password : ${{ secrets.SERVER_PASSWORD }}
74
+ port : ${{ secrets.PORT }}
75
+ source : ' dist/*'
76
+ target : ' /mnt/i32g-nfs/pluto-frontend/public'
77
+ strip_components : 1
0 commit comments