diff --git a/.github/workflows/server-deploy.yml b/.github/workflows/server-deploy.yml index e732e55..f4481aa 100644 --- a/.github/workflows/server-deploy.yml +++ b/.github/workflows/server-deploy.yml @@ -1,6 +1,7 @@ name: If push to the main, deploy it on: + workflow_dispatch: push: branches: - main @@ -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: @@ -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 diff --git a/.github/workflows/web-deploy.yml b/.github/workflows/web-deploy.yml index f14bb43..fce1e06 100644 --- a/.github/workflows/web-deploy.yml +++ b/.github/workflows/web-deploy.yml @@ -1,6 +1,7 @@ name: If push to the main, deploy it on: + workflow_dispatch: push: branches: - main @@ -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: @@ -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 diff --git a/INFRA_DEPLOY.md b/INFRA_DEPLOY.md index 1c330cd..18d3fc1 100644 --- a/INFRA_DEPLOY.md +++ b/INFRA_DEPLOY.md @@ -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 버튼을 누른다. @@ -56,6 +63,8 @@ az ad sp create-for-rbac --name --role contributor --scopes /subscriptions//resourceGroups/ --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 버튼을 누른다. diff --git a/SERVER_DEPLOY.md b/SERVER_DEPLOY.md index f0a9c42..ee16eb5 100644 --- a/SERVER_DEPLOY.md +++ b/SERVER_DEPLOY.md @@ -2,4 +2,14 @@ ### 서버 배포 -canbus-server 모듈의 change가 포함된 commit을 main에 push 하게 되면 workflow가 작동해서 서버 배포가 자동으로 완료된다 \ No newline at end of file +![아래의 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 주석만 살짝 수정하는 식으로 테스트하시면 됩니다) \ No newline at end of file diff --git a/WEB_DEPLOY.md b/WEB_DEPLOY.md index 86b0cf9..4228f29 100644 --- a/WEB_DEPLOY.md +++ b/WEB_DEPLOY.md @@ -2,4 +2,7 @@ ### 웹 배포 -canbus-web 모듈의 change가 포함된 commit을 main에 push 하게 되면 workflow가 작동해서 웹 배포가 자동으로 완료된다 \ No newline at end of file +[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 주석만 살짝 수정하는 식으로 테스트하시면 됩니다) \ No newline at end of file diff --git a/canbus-server/.gitignore b/canbus-server/.gitignore index fe19673..298cadd 100644 --- a/canbus-server/.gitignore +++ b/canbus-server/.gitignore @@ -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.* @@ -211,7 +211,7 @@ gradle-app.setting # JDT-specific (Eclipse Java Development Tools) .classpath -### Gradle Patch ### +### Gradle Patch ###f # Java heap dump *.hprof diff --git a/images/github_actions_secret.png b/images/github_actions_secret.png new file mode 100644 index 0000000..9d3a048 Binary files /dev/null and b/images/github_actions_secret.png differ