Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
SeokgyuYun committed Aug 26, 2024
2 parents 4602345 + 62c5326 commit 8b230d8
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 43 deletions.
9 changes: 5 additions & 4 deletions .github/workflows/server-deploy.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: If push to the main, deploy it

on:
workflow_dispatch:
push:
branches:
- main
Expand All @@ -12,10 +13,10 @@ jobs:
runs-on: ubuntu-latest

env:
TEAM_NAME: woowasiblings
ACR_NAME: ${{ secrets.ACR_NAME }} #woowasiblings
APP_NAME: canbus-server
APP_ENV: canbus-server-env
RG_NAME: rg-2024-Woowa-Siblings
RG_NAME: ${{ secrets.RG_NAME }} #rg-2024-Woowa-Siblings

steps:

Expand All @@ -36,13 +37,13 @@ jobs:
uses: azure/container-apps-deploy-action@v0
with:
appSourcePath: ${{ github.workspace }}/${{ env.APP_NAME }}
acrName: ${{ env.TEAM_NAME }}
acrName: ${{ env.ACR_NAME }}
acrUsername: ${{ secrets.ACR_USERNAME }}
acrPassword: ${{ secrets.ACR_PASSWORD }}
containerAppName: ${{ env.APP_NAME }}
containerAppEnvironment: ${{ env.APP_ENV }}
resourceGroup: ${{ env.RG_NAME }}
imageToBuild: ${{ env.TEAM_NAME }}.azurecr.io/${{ env.APP_NAME }}:${{ github.sha }}
imageToBuild: ${{ env.ACR_NAME }}.azurecr.io/${{ env.APP_NAME }}:${{ github.sha }}
dockerfilePath: Dockerfile

- name: Azure Container Apps Ingress Setting
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/web-deploy.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: If push to the main, deploy it

on:
workflow_dispatch:
push:
branches:
- main
Expand All @@ -12,10 +13,10 @@ jobs:
runs-on: ubuntu-latest

env:
TEAM_NAME: woowasiblings
ACR_NAME: ${{ secrets.ACR_NAME }} #woowasiblings
APP_NAME: canbus-web
APP_ENV: canbus-web-env
RG_NAME: rg-2024-Woowa-Siblings
RG_NAME: ${{ secrets.RG_NAME }} #rg-2024-Woowa-Siblings

steps:

Expand All @@ -31,13 +32,13 @@ jobs:
uses: azure/container-apps-deploy-action@v0
with:
appSourcePath: ${{ github.workspace }}/${{ env.APP_NAME }}
acrName: ${{ env.TEAM_NAME }}
acrName: ${{ env.ACR_NAME }}
acrUsername: ${{ secrets.ACR_USERNAME }}
acrPassword: ${{ secrets.ACR_PASSWORD }}
containerAppName: ${{ env.APP_NAME }}
containerAppEnvironment: ${{ env.APP_ENV }}
resourceGroup: ${{ env.RG_NAME }}
imageToBuild: ${{ env.TEAM_NAME }}.azurecr.io/${{ env.APP_NAME }}:${{ github.sha }}
imageToBuild: ${{ env.ACR_NAME }}.azurecr.io/${{ env.APP_NAME }}:${{ github.sha }}
dockerfilePath: Dockerfile

- name: Azure Container Apps Ingress Setting
Expand Down
71 changes: 40 additions & 31 deletions INFRA_DEPLOY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,50 @@

**아래의 “리소스”라는 용어는 진행하고 있는 그 챕터의 리소스를 말합니다 (제목)**

### Azure Database for MySQL
이 문서에서 Github Actions 관련 작업은 https://github.com/rlawhddbs/hg-2024-Woowa-Siblings 레포지토리를 우측 상단에 있는 Fork 버튼을 눌러 본인 소유의 레포지토리로 Fork를 한 후 작업합니다

### Azure Database for MySQL 서버

---

1. 리소스 만들기 버튼을 클릭하고, 유연한 서버 탭의 만들기를 클릭한다.
2. 본인 팀의 리소스 그룹을 선택한다.
3. 서버 이름을 기입한다
4. 관리자 사용자 이름, 암호, 암호 확인을 기입한다.
5. 네트워킹 탭에서 가서 `+ 0.0.0.0 - 255.255.255.255 추가`를 선택한다.
6. 검토 + 만들기를 선택한다.
7. 만들기를 누르고 리소스가 생성될 때까지 대기한다.
8. https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem 링크에서 pem 파일을 다운받는다.
9. 리소스의 설정 - 연결 탭에 들어가 적혀있는 연결 방법을 따라 DB에 연결한다. (이 밑은 MySQL Workbench를 기준으로 설명한다)
1. **MySQL 연결** 탭에서 **+** 기호를 클릭하여 새 연결을 추가합니다.
2. **연결 이름** 필드에 연결 이름을 입력합니다.
3. 연결 형식으로 **표준(TCP/IP)**을(를) 선택합니다.
4. 호스트 이름 필드에 **woowasiblings-db.mysql.database.azure.com**을(를) 입력하세요.
5. 사용자 이름으로 **woowasiblings**을(를) 입력한 후 **암호**을(를) 입력합니다.
6. **SSL 탭**(으)로 이동하여 SSL 사용 필드를 필수로 업데이트합니다.
7. **SL CA 파일** 필드에 아까 다운로드 받은 **DigiCertGlobalRootCA.crt.pem** 파일의 파일 위치를 입력합니다.
8. **연결 테스트**을(를) 클릭하여 연결을 테스트합니다.
9. 연결에 성공하면 **확인**을(를) 클릭하여 연결을 저장합니다.
10. 만든 연결을 통해 DB에 연결합니다.
11. Schema 탭을 우클릭하고, Create Schema 버튼을 클릭합니다.
12. Schema Name 칸에 canbus_db를 기입하고 Add 버튼을 클릭합니다.

### Container Registry
1. Azure Database for MySQL 서버를 검색해서 들어갑니다.
2. 리소스 만들기 버튼을 클릭하고, 유연한 서버 탭의 만들기를 클릭한다.
3. 본인 팀의 리소스 그룹을 선택한다.
4. 서버 이름을 기입한다
5. 관리자 사용자 이름, 암호, 암호 확인을 기입한다.
6. 네트워킹 탭에서 가서 `+ 0.0.0.0 - 255.255.255.255 추가`를 선택한다.
7. 검토 + 만들기를 선택한다.
8. 만들기를 누르고 리소스가 생성될 때까지 대기한다.
9. https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem 링크에서 pem 파일을 다운받는다.
10. 리소스의 설정 - 연결 탭에 들어가 적혀있는 연결 방법을 따라 DB에 연결한다. (이 밑은 MySQL Workbench를 기준으로 설명한다)
1. **MySQL 연결** 탭에서 **+** 기호를 클릭하여 새 연결을 추가합니다.
2. **연결 이름** 필드에 연결 이름을 입력합니다.
3. 연결 형식으로 **표준(TCP/IP)**을(를) 선택합니다.
4. 호스트 이름 필드에 **서버 이름**을(를) 입력하세요.
5. **사용자 이름**을 입력한 후 **암호**을(를) 입력합니다.
6. **SSL 탭**(으)로 이동하여 SSL 사용 필드를 필수로 업데이트합니다.
7. **SL CA 파일** 필드에 아까 다운로드 받은 **DigiCertGlobalRootCA.crt.pem** 파일의 파일 위치를 입력합니다.
8. **연결 테스트**을(를) 클릭하여 연결을 테스트합니다.
9. 연결에 성공하면 **확인**을(를) 클릭하여 연결을 저장합니다.
11. 만든 연결을 통해 DB에 연결합니다.
12. Schema 탭을 우클릭하고, Create Schema 버튼을 클릭합니다.
13. Schema Name 칸에 canbus_db를 기입하고 Add 버튼을 클릭합니다.

### 컨테이너 레지스트리

---

1. 리소스 만들기 버튼을 클릭한다.
2. 본인 팀의 리소스 그룹을 선택한다.
3. 레지스트리 이름을 기입한다.
4. 검토 + 만들기를 선택한다.
5. 만들기를 누르고 리소스가 생성될 때까지 대기한다.
6. 설정 - 액세스 키에 가서 관리 사용자 박스에 체크를 한다.
7. 사용자 이름과 password를 각각 복사 해놓는다
1. Azure Database for MySQL 서버를 검색해서 들어갑니다.
2. 리소스 만들기 버튼을 클릭한다.
3. 본인 팀의 리소스 그룹을 선택한다.
4. 레지스트리 이름을 기입한다.
5. 검토 + 만들기를 선택한다.
6. 만들기를 누르고 리소스가 생성될 때까지 대기한다.
7. 설정 - 액세스 키에 가서 관리 사용자 박스에 체크를 한다.
8. 사용자 이름과 password를 각각 복사 해놓는다

![아래의 New repository secret을 찾아가는 방법](images/github_actions_secret.png)

8. Github 팀 Repository - Setting - Secrets and Variables - Actions 탭에서 New repository secret 버튼을 누른다.
9. Name 란에 AZURE_USERNAME을 기입하고, Secret 란에 복사 해둔 사용자 이름을 넣고 Add secret 버튼을 누른다.
10. Name 란에 AZURE_PASSWORD을 기입하고, Secret 란에 복사 해둔 password를 넣고 Add secret 버튼을 누른다.
Expand All @@ -56,6 +63,8 @@
az ad sp create-for-rbac --name <my-credentials-name> --role contributor --scopes /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/<my-resource-group> --json-auth --output json
```

![아래의 New repository secret을 찾아가는 방법](images/github_actions_secret.png)

2. Github 팀 Repository - Setting - Secrets and Variables - Actions 탭에서 New repository secret 버튼을 누른다.
3. Name 란에 AZURE_CREDENTIALS를 기입하고, Secret 란에 위에 명령어를 치고 나온 json을 붙여넣고
Add secret 버튼을 누른다.
12 changes: 11 additions & 1 deletion SERVER_DEPLOY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,14 @@

### 서버 배포

canbus-server 모듈의 change가 포함된 commit을 main에 push 하게 되면 workflow가 작동해서 서버 배포가 자동으로 완료된다
![아래의 New repository secret을 찾아가는 방법](images/github_actions_secret.png)

1. Github 팀 Repository - Setting - Secrets and Variables - Actions 탭에서 New repository secret 버튼을 누른다.
2. Name 란에 ACR_NAME을 기입하고, Secret 란에 Container Registry의 이름을 기입하고 Add secret 버튼을 누른다.
3. Name 란에 RG_NAME을 기입하고, Secret 란에 본인의 리소스 그룹을 기입하고 Add secret 버튼을 누른다.
4. Name 란에 ENV_FILE을 기입하고, Secret 란에 넘겨받은 .env 파일의 내용을 붙여넣고 Add secret 버튼을 누른다.

[hg-2024-Woowa-Siblings](https://github.com/hackersground-kr/hg-2024-Woowa-Siblings) 레포지토리에는 canbus-server, canbus-web 두가지 모듈이 존재하는데,

canbus-server 모듈 안에 있는 파일이 변경된 commit을 main에 push 하게 되면 Github Actions workflow가 작동해서 서버 배포가 자동으로 진행된다.
(.gitignore 주석만 살짝 수정하는 식으로 테스트하시면 됩니다)
5 changes: 4 additions & 1 deletion WEB_DEPLOY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@

### 웹 배포

canbus-web 모듈의 change가 포함된 commit을 main에 push 하게 되면 workflow가 작동해서 웹 배포가 자동으로 완료된다
[hg-2024-Woowa-Siblings](https://github.com/hackersground-kr/hg-2024-Woowa-Siblings) 레포지토리에는 canbus-server, canbus-web 두가지 모듈이 존재하는데,

canbus-server 모듈 안에 있는 파일이 변경된 commit을 main에 push 하게 되면 Github Actions workflow가 작동해서 서버 배포가 자동으로 진행된다.
(.gitignore 주석만 살짝 수정하는 식으로 테스트하시면 됩니다)
4 changes: 2 additions & 2 deletions canbus-server/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# $ git config --global mergetool.keepBackup false
*.orig

# Created by git when using merge tools for conflicts
# Created by git when using merge tools for conflictss
*.BACKUP.*
*.BASE.*
*.LOCAL.*
Expand Down Expand Up @@ -211,7 +211,7 @@ gradle-app.setting
# JDT-specific (Eclipse Java Development Tools)
.classpath

### Gradle Patch ###
### Gradle Patch ###f
# Java heap dump
*.hprof

Expand Down
Binary file added images/github_actions_secret.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 8b230d8

Please sign in to comment.