-
Notifications
You must be signed in to change notification settings - Fork 0
70 lines (57 loc) · 2.06 KB
/
frontend_main_cd.yml
File metadata and controls
70 lines (57 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
name: Frontend Continuous Delivery
on:
push:
paths:
- "frontend/**"
branches:
- main
workflow_dispatch:
permissions: write-all
env:
ZIP_NAME: "frontend.tar"
APP_TARGET_PATH: "frontend/"
APP_FOLDER_PATH: "/home/app/frontend"
jobs:
build:
runs-on: ubuntu-22.04
#runs-on: [self-hosted, Linux, ARM64]
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4
- name: Build AMD64 Docker image
run: docker build -f Dockerfile.prod -t devlog-frontend:latest .
- name: Save Docker image as tar file
run: docker save -o frontend.tar devlog-frontend:latest
# (Actions에서 생성한 파일은 권한을 수정해야 scp로 보낼 때 오류가 안생김)
- name: Modify permissions
run: chmod o+rwx ${{ env.ZIP_NAME }}
- name: Send docker image file
uses: appleboy/scp-action@master
with:
proxy_host: ${{ secrets.PROXY_HOST }}
proxy_username: ${{ secrets.PROXY_HOST_USERNAME }}
proxy_key: ${{ secrets.PROXY_HOST_KEY }}
host: ${{ secrets.REMOTE_HOST }}
username: ${{ secrets.REMOTE_HOST_USERNAME }}
key: ${{ secrets.REMOTE_HOST_KEY }}
source: "${{ env.APP_TARGET_PATH }}${{ env.ZIP_NAME }}"
target: ${{ env.APP_FOLDER_PATH }}
strip_components: 1
- name: Start frontend server
uses: appleboy/ssh-action@master
with:
proxy_host: ${{ secrets.PROXY_HOST }}
proxy_username: ${{ secrets.PROXY_HOST_USERNAME }}
proxy_key: ${{ secrets.PROXY_HOST_KEY }}
host: ${{ secrets.REMOTE_HOST }}
username: ${{ secrets.REMOTE_HOST_USERNAME }}
key: ${{ secrets.REMOTE_HOST_KEY }}
script: |
cd ${{ env.APP_FOLDER_PATH }}
if docker ps | grep -q "frontend-service"; then
docker stop frontend-service
fi
docker load -i ${{ env.ZIP_NAME}}
docker run --rm -d -p 3000:3000 --name frontend-service devlog-frontend:latest