Skip to content

Commit 09cc5a9

Browse files
authored
Merge pull request #38 from UMC-7th-CAU-NodeJS/feature/add-deploy-pipeline
Update deploy-main.yml
2 parents fcc85bb + 0ca858c commit 09cc5a9

File tree

1 file changed

+59
-5
lines changed

1 file changed

+59
-5
lines changed

.github/workflows/deploy-main.yml

+59-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,67 @@
1-
name: deploy-main # 파이프라인 이름은 자유롭게 지어주세요
1+
name: deploy-main
22

33
on:
44
push:
55
branches:
6-
- main # main 브랜치에 새로운 커밋이 올라왔을 떄 실행되도록 합니다
7-
workflow_dispatch: # 필요한 경우 수동으로 실행할 수도 있도록 합니다
6+
- main
7+
workflow_dispatch:
88

99
jobs:
1010
deploy:
11-
runs-on: ubuntu-latest # CI/CD 파이프라인이 실행될 운영체제 환경을 지정합니다
11+
runs-on: ubuntu-latest
1212
steps:
13-
- TODO
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Configure SSH
17+
run: |
18+
mkdir -p ~/.ssh
19+
echo "$EC2_SSH_KEY" > ~/.ssh/id_rsa
20+
chmod 600 ~/.ssh/id_rsa
21+
22+
cat >>~/.ssh/config <<END
23+
Host playground-umc-7th
24+
HostName $EC2_HOST
25+
User $EC2_USER
26+
IdentityFile ~/.ssh/id_rsa
27+
StrictHostKeyChecking no
28+
END
29+
env:
30+
EC2_USER: ubuntu
31+
EC2_HOST: ${{ secrets.EC2_HOST }}
32+
EC2_SSH_KEY: ${{ secrets.EC2_SSH_KEY }}
33+
34+
- name: Copy Workspace
35+
run: |
36+
ssh playground-umc-7th 'sudo mkdir -p /opt/app'
37+
ssh playground-umc-7th 'sudo chown ubuntu:ubuntu /opt/app'
38+
scp -r ./[!.]* playground-umc-7th:/opt/app
39+
40+
- name: Install dependencies
41+
run: |
42+
ssh playground-umc-7th 'npm install --prefix /opt/app/'
43+
44+
- name: Copy systemd service file
45+
run: |
46+
ssh playground-umc-7th '
47+
echo "[Unit]
48+
Description=UMC 7th Project
49+
After=network.target
50+
51+
[Service]
52+
User=${USER}
53+
ExecStart=/usr/bin/npm run dev --prefix /opt/app/
54+
Restart=always
55+
56+
[Install]
57+
WantedBy=multi-user.target" | sudo tee /etc/systemd/system/app.service
58+
'
59+
60+
- name: Enable systemd service
61+
run: |
62+
ssh playground-umc-7th 'sudo systemctl daemon-reload'
63+
ssh playground-umc-7th 'sudo systemctl enable app'
64+
65+
- name: Restart systemd service
66+
run: |
67+
ssh playground-umc-7th 'sudo systemctl restart app'

0 commit comments

Comments
 (0)