Skip to content

Commit a8f8796

Browse files
authored
Merge pull request #328 from GSM-MSG/develop
디벨롭 변경 사항들 마스터 머지
2 parents ea48cc3 + 13c664e commit a8f8796

File tree

147 files changed

+2925
-124
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

147 files changed

+2925
-124
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: Deploy to cloudtype
2+
on:
3+
push:
4+
branches:
5+
- develop
6+
jobs:
7+
deploy:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: SMS-Backend-CD Discord Notification
11+
uses: sarisia/actions-status-discord@v1
12+
if: ${{ success() }}
13+
with:
14+
title: ℹ️ SMS-Backend-CD 시작! ℹ️
15+
webhook: ${{ secrets.SMS_DISCORD_WEBHOOK }}
16+
color: 00FF00
17+
18+
- name: Checkout
19+
uses: actions/checkout@v2
20+
- name: Connect deploy key
21+
uses: cloudtype-github-actions/connect@v1
22+
with:
23+
token: ${{ secrets.CLOUDTYPE_TOKEN }}
24+
ghtoken: ${{ secrets.GHP_TOKEN }}
25+
- name: Deploy
26+
uses: cloudtype-github-actions/deploy@v1
27+
with:
28+
token: ${{ secrets.CLOUDTYPE_TOKEN }}
29+
project: ${{ secrets.PROJECT_NAME }}
30+
stage: main
31+
yaml: >
32+
name: sms-backend
33+
34+
app: java@11
35+
36+
options:
37+
ports: 8080
38+
start: java -jar sms-infrastructure/build/libs/sms-infrastructure-0.0.1-SNAPSHOT.jar
39+
includes: sms-infrastructure
40+
env:
41+
- name: AWS_ACCESS_KEY
42+
value: ${{ secrets.AWS_ACCESS_KEY }}
43+
- name: AWS_REGION_STATIC
44+
value: ${{ secrets.AWS_REGION_STATIC }}
45+
- name: AWS_SECRET_KEY
46+
value: ${{ secrets.AWS_SECRET_KEY }}
47+
- name: DB_DRIVER
48+
value: ${{ secrets.DB_DRIVER }}
49+
- name: DB_PASSWORD
50+
value: ${{ secrets.DB_PASSWORD }}
51+
- name: DB_URL
52+
value: ${{ secrets.DB_URL }}
53+
- name: DB_USERNAME
54+
value: ${{ secrets.DB_USERNAME }}
55+
- name: GAUTH_CLIENT_ID
56+
value: ${{ secrets.GAUTH_CLIENT_ID }}
57+
- name: GAUTH_CLIENT_SECRET
58+
value: ${{ secrets.GAUTH_CLIENT_SECRET }}
59+
- name: GAUTH_REDIRECT_URI
60+
value: ${{ secrets.GAUTH_REDIRECT_URI }}
61+
- name: JWT_ACCESS_SECRET
62+
value: ${{ secrets.JWT_ACCESS_SECRET }}
63+
- name: JWT_REFRESH_SECRET
64+
value: ${{ secrets.JWT_REFRESH_SECRET }}
65+
- name: REDIS_HOST
66+
value: ${{ secrets.REDIS_HOST }}
67+
- name: REDIS_PORT
68+
value: ${{ secrets.REDIS_PORT }}
69+
- name: S3_BUCKET
70+
value: ${{ secrets.S3_BUCKET }}
71+
- name: S3_LOG_BUCKET
72+
value: ${{ secrets.S3_LOG_BUCKET }}
73+
- name: SECURITY_SECRET_KEY
74+
value: ${{ secrets.SECURITY_SECRET_KEY }}
75+
healthz: /health
76+
context:
77+
git:
78+
url: git@github.com:${{ github.repository }}.git
79+
ref: ${{ github.ref }}
80+
preset: kotlin
81+
82+
- name: SMS-Backend-CD Discord Notification
83+
uses: sarisia/actions-status-discord@v1
84+
if: ${{ success() }}
85+
with:
86+
title: ✅ SMS-Backend-CD 성공! ✅
87+
webhook: ${{ secrets.SMS_DISCORD_WEBHOOK }}
88+
status: ${{ job.status }}
89+
image: ${{ secrets.CD_SUCCESS_IMAGE }}
90+
description: 영역전개 CD 성공
91+
color: 00FF00
92+
username: SMS CD 봇
93+
url: https://github.com/GSM-MSG/SMS-BackEnd
94+
95+
- name: SMS-Backend-CD Discord Notification
96+
uses: sarisia/actions-status-discord@v1
97+
if: ${{ failure() }}
98+
with:
99+
title: ❗️ SMS-Backend-CD 실패! ❗️
100+
webhook: ${{ secrets.SMS_DISCORD_WEBHOOK }}
101+
status: ${{ job.status }}
102+
image: ${{ secrets.CD_FAIL_IMAGE }}
103+
description: 무례하긴, 실패다.
104+
color: FF0000
105+
username: SMS CD 봇
106+
url: https://github.com/GSM-MSG/SMS-BackEnd

.github/workflows/sms_backend_develop_cd.yml

Lines changed: 68 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,98 @@
1-
name: Deploy to cloudtype
1+
name: Deploy to Develop server
2+
23
on:
3-
push:
4-
branches:
5-
- develop
4+
push:
5+
branches:
6+
- aws-develop-server
7+
68
jobs:
7-
deploy:
8-
runs-on: ubuntu-latest
9-
steps:
9+
CD:
10+
name: CD
11+
runs-on: ubuntu-latest
12+
environment: production
13+
14+
steps:
1015
- name: SMS-Backend-CD Discord Notification
1116
uses: sarisia/actions-status-discord@v1
1217
if: ${{ success() }}
1318
with:
14-
title: ℹ️ SMS-Backend-CD 시작! ℹ️
19+
title: ℹ️ SMS-Backend-Develop-CD 시작! ℹ️
1520
webhook: ${{ secrets.SMS_DISCORD_WEBHOOK }}
1621
color: 00FF00
17-
22+
1823
- name: Checkout
19-
uses: actions/checkout@v2
20-
- name: Connect deploy key
21-
uses: cloudtype-github-actions/connect@v1
24+
uses: actions/checkout@v3
25+
26+
- name: Set up JDK 11
27+
uses: actions/setup-java@v3
2228
with:
23-
token: ${{ secrets.CLOUDTYPE_TOKEN }}
24-
ghtoken: ${{ secrets.GHP_TOKEN }}
25-
- name: Deploy
26-
uses: cloudtype-github-actions/deploy@v1
29+
java-version: '11'
30+
distribution: 'temurin'
31+
cache: gradle
32+
33+
- name: Setup Gradle
34+
uses: gradle/gradle-build-action@v2
35+
36+
- name: Grant execute permission for gradlew
37+
run: chmod +x gradlew
38+
39+
- name: Create application.yml
40+
env:
41+
IMAGE_TAG: ${{ secrets.DEVELOP_IMAGE_TAG }}
42+
run: |
43+
touch ./sms-infrastructure/src/main/resources/application.yml
44+
echo "${{ secrets.SMS_BACKEND_ENV }}" > ./sms-infrastructure/src/main/resources/application.yml
45+
shell: bash
46+
47+
- name: Run build with Gradle wrapper
48+
run: ./gradlew clean build
49+
50+
- name: Configure AWS credentials
51+
uses: aws-actions/configure-aws-credentials@v3
2752
with:
28-
token: ${{ secrets.CLOUDTYPE_TOKEN }}
29-
project: seungwon/movie
30-
stage: main
31-
yaml: >
32-
name: sms-backend
33-
34-
app: java@11
35-
36-
options:
37-
ports: 8080
38-
includes: sms-infrastructure
39-
env:
40-
- name: AWS_ACCESS_KEY
41-
value: ${{ secrets.AWS_ACCESS_KEY }}
42-
- name: AWS_REGION_STATIC
43-
value: ${{ secrets.AWS_REGION_STATIC }}
44-
- name: AWS_SECRET_KEY
45-
value: ${{ secrets.AWS_SECRET_KEY }}
46-
- name: DB_DRIVER
47-
value: ${{ secrets.DB_DRIVER }}
48-
- name: DB_PASSWORD
49-
value: ${{ secrets.DB_PASSWORD }}
50-
- name: DB_URL
51-
value: ${{ secrets.DB_URL }}
52-
- name: DB_USERNAME
53-
value: ${{ secrets.DB_USERNAME }}
54-
- name: GAUTH_CLIENT_ID
55-
value: ${{ secrets.GAUTH_CLIENT_ID }}
56-
- name: GAUTH_CLIENT_SECRET
57-
value: ${{ secrets.GAUTH_CLIENT_SECRET }}
58-
- name: GAUTH_REDIRECT_URI
59-
value: ${{ secrets.GAUTH_REDIRECT_URI }}
60-
- name: JWT_ACCESS_SECRET
61-
value: ${{ secrets.JWT_ACCESS_SECRET }}
62-
- name: JWT_REFRESH_SECRET
63-
value: ${{ secrets.JWT_REFRESH_SECRET }}
64-
- name: REDIS_HOST
65-
value: ${{ secrets.REDIS_HOST }}
66-
- name: REDIS_PORT
67-
value: ${{ secrets.REDIS_PORT }}
68-
- name: S3_BUCKET
69-
value: ${{ secrets.S3_BUCKET }}
70-
- name: S3_LOG_BUCKET
71-
value: ${{ secrets.S3_LOG_BUCKET }}
72-
- name: SECURITY_SECRET_KEY
73-
value: ${{ secrets.SECURITY_SECRET_KEY }}
74-
start: java -jar sms-infrastructure/build/libs/sms-infrastructure-0.0.1-SNAPSHOT.jar
75-
context:
76-
git:
77-
url: git@github.com:${{ github.repository }}.git
78-
ref: ${{ github.ref }}
79-
preset: kotlin
53+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
54+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
55+
aws-region: ap-northeast-2
56+
57+
- name: Login to Amazon ECR
58+
id: login-ecr
59+
uses: aws-actions/amazon-ecr-login@v1
60+
61+
- name: Build, tag, and push image to Amazon ECR
62+
id: build-image
63+
env:
64+
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
65+
run: |
66+
docker build -t ${{ secrets.ECR_REPOSITORY }}:${{ secrets.DEVELOP_IMAGE_TAG }} .
67+
docker tag ${{ secrets.ECR_REPOSITORY }}:${{ secrets.DEVELOP_IMAGE_TAG }} ${{ secrets.REPO_URL }}:${{ secrets.DEVELOP_IMAGE_TAG }}
68+
docker push ${{ secrets.REPO_URL }}:${{ secrets.DEVELOP_IMAGE_TAG }}
8069
70+
- name : CodeDeploy Create Deployment
71+
run: |
72+
aws deploy create-deployment \
73+
--application-name codedeploy-develop-server \
74+
--deployment-group-name codedeploy-group \
75+
--deployment-config-name CodeDeployDefault.OneAtATime \
76+
--github-location repository=${{ github.repository }},commitId=${{ github.sha }}
77+
8178
- name: SMS-Backend-CD Discord Notification
8279
uses: sarisia/actions-status-discord@v1
8380
if: ${{ success() }}
8481
with:
85-
title: ✅ SMS-Backend-CD 성공! ✅
82+
title: ✅ SMS-Backend-Develop-CD 성공! ✅
8683
webhook: ${{ secrets.SMS_DISCORD_WEBHOOK }}
8784
status: ${{ job.status }}
8885
image: ${{ secrets.CD_SUCCESS_IMAGE }}
8986
description: 영역전개 CD 성공
9087
color: 00FF00
9188
username: SMS CD 봇
9289
url: https://github.com/GSM-MSG/SMS-BackEnd
93-
90+
9491
- name: SMS-Backend-CD Discord Notification
9592
uses: sarisia/actions-status-discord@v1
9693
if: ${{ failure() }}
9794
with:
98-
title: ❗️ SMS-Backend-CD 실패! ❗️
95+
title: ❗️ SMS-Backend-Develop-CD 실패! ❗️
9996
webhook: ${{ secrets.SMS_DISCORD_WEBHOOK }}
10097
status: ${{ job.status }}
10198
image: ${{ secrets.CD_FAIL_IMAGE }}

.github/workflows/sms_backend_master_cd.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
on:
22
push:
33
branches: [ "master" ]
4+
workflow_dispatch:
45

56
jobs:
67
CD:
@@ -57,11 +58,10 @@ jobs:
5758
id: build-image
5859
env:
5960
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
60-
IMAGE_TAG: latest
6161
run: |
62-
docker build -t ${{ secrets.ECR_REPOSITORY }} .
63-
docker tag ${{ secrets.ECR_REPOSITORY }}:$IMAGE_TAG ${{ secrets.REPO_URL }}:$IMAGE_TAG
64-
docker push ${{ secrets.REPO_URL }}:$IMAGE_TAG
62+
docker build -t ${{ secrets.ECR_REPOSITORY }}:${{ secrets.IMAGE_TAG }}.
63+
docker tag ${{ secrets.ECR_REPOSITORY }}:${{ secrets.IMAGE_TAG }} ${{ secrets.REPO_URL }}:${{ secrets.IMAGE_TAG }}
64+
docker push ${{ secrets.REPO_URL }}:${{ secrets.IMAGE_TAG }}
6565
6666
- name : CodeDeploy Create Deployment
6767
run: |

appspec.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ files:
55
- source: /docker-compose.yml
66
destination: /home/ubuntu/
77
overwrite: yes
8+
- source: /docker-compose-develop.yml
9+
destination: /home/ubuntu/
10+
overwrite: yes
811

912
file_exists_behavior: OVERWRITE
1013

docker-compose-develop.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
version: "3.7"
2+
3+
services:
4+
develop:
5+
image : ${REPO_URL}/${ECR_REPOSITORY}:${IMAGE_TAG}
6+
ports:
7+
- 8080:8080
8+
networks:
9+
- backend
10+
logging:
11+
driver: awslogs
12+
options:
13+
awslogs-group: "sms-develop-server-logs"
14+
awslogs-region: "ap-northeast-2"
15+
awslogs-stream: "backend-start-logs"
16+
17+
redis:
18+
image : redis:alpine
19+
ports:
20+
- 6379:6379
21+
networks:
22+
- backend
23+
24+
nginx:
25+
image : ${NGINX_URL}
26+
ports:
27+
- 80:80
28+
networks:
29+
- backend
30+
31+
32+
33+
34+
networks:
35+
backend:
36+
driver: bridge

docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: "3.7"
22

33
services:
44
blue:
5-
image : ${REPO_URL}/${ECR_REPOSITORY}:latest
5+
image : ${REPO_URL}/${ECR_REPOSITORY}:${IMAGE_TAG}
66
ports:
77
- 8080:8080
88
networks:
@@ -15,7 +15,7 @@ services:
1515
awslogs-stream: "backend-start-logs"
1616

1717
green:
18-
image : ${REPO_URL}/${ECR_REPOSITORY}:latest
18+
image : ${REPO_URL}/${ECR_REPOSITORY}:${IMAGE_TAG}
1919
ports:
2020
- 8090:8080
2121
networks:

scripts/pullDocker.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ${REPO_URL}
44

5-
docker pull ${REPO_URL}/${ECR_REPOSITORY}:latest
5+
docker pull ${REPO_URL}/${ECR_REPOSITORY}:${IMAGE_TAG}

0 commit comments

Comments
 (0)