Skip to content

Commit

Permalink
Merge pull request #242 from Team-Tiki/develop
Browse files Browse the repository at this point in the history
[INIT] 배포 서버 설정
  • Loading branch information
Chan531 authored Jan 21, 2025
2 parents 26dff26 + edf872f commit 64e7951
Show file tree
Hide file tree
Showing 271 changed files with 10,571 additions and 3 deletions.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/issue-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Issue Template
about: 이슈 템플릿입니다.
title: ''
labels: ''
assignees: ''

---

**📌 상세 설명**

[comment]: <> (이슈에 대한 설명을 적어주세요)

**📝 체크리스트**

[comment]: <> (해야 할 일들을 상세히 나눠 적어주시면 좋아요)

- [ ]

- [ ] <!--여기에 적어주세요-->
8 changes: 8 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## ✨ Related Issue
- close #이슈번호
<br/>

## 📝 기능 구현 명세
- 이곳에는 postman 테스트 결과를 넣어주세요

## 🐥 추가적인 언급 사항
40 changes: 40 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI

on:
pull_request:
branches: [ "develop" ]

jobs:
build:
runs-on: ubuntu-22.04

steps:
- name: checkout
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'

- name: create application-secret.yml
run: |
# create application-secret.yml
cd ./src/main/resources
# application-secret.yml 파일 생성
touch ./application-secret.yml
# GitHub-Actions 에서 설정한 값을 application-secret.yml 파일에 쓰기..git
echo "${{ secrets.CI_APPLICATION_SECRET }}" >> ./application-secret.yml
# application.yml 파일 확인
cat ./application-secret.yml
shell: bash

- name: build
run: |
chmod +x gradlew
./gradlew build -x test
shell: bash
69 changes: 69 additions & 0 deletions .github/workflows/DOCKER-CD.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: DOCKER-CD
on:
push:
branches: [ "develop" ]

jobs:
ci:
runs-on: ubuntu-22.04
env:
working-directory: .

steps:
- name: 체크아웃
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'

- name: application-secret.yml 생성
run: |
cd ./src/main/resources
touch ./application-secret.yml
echo "${{ secrets.CD_APPLICATION_SECRET}}" > ./application-secret.yml
cat ./application-secret.yml
cat ./application-dev.yml
working-directory: ${{ env.working-directory }}

- name: 빌드
run: |
chmod +x gradlew
./gradlew build -x test
working-directory: ${{ env.working-directory }}
shell: bash


- name: docker build 환경 설정
uses: docker/setup-buildx-action@v2.9.1

- name: docker hub 로그인
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKER_LOGIN_USERNAME }}
password: ${{ secrets.DOCKER_LOGIN_ACCESSTOKEN }}

- name: docker image 빌드 및 푸시
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile-Dev
push: true
tags: ${{ secrets.DOCKER_LOGIN_USERNAME }}/dev

cd:
needs: ci
runs-on: ubuntu-22.04

steps:
- name: docker 컨테이너 실행
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SERVER_KEY }}
script: |
cd ~
./deploy.sh
68 changes: 68 additions & 0 deletions .github/workflows/PROD-CD.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: PROD-CD
on:
push:
branches: [ "main" ]

jobs:
ci:
runs-on: ubuntu-22.04
env:
working-directory: .

steps:
- name: 체크아웃
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'

- name: application-secret.yml 생성
run: |
cd ./src/main/resources
touch ./application-secret.yml
echo "${{ secrets.CD_APPLICATION_SECRET}}" > ./application-secret.yml
cat ./application-secret.yml
cat ./application-dev.yml
working-directory: ${{ env.working-directory }}

- name: 빌드
run: |
chmod +x gradlew
./gradlew build -x test
working-directory: ${{ env.working-directory }}
shell: bash

- name: docker build 환경 설정
uses: docker/setup-buildx-action@v2.9.1

- name: docker hub 로그인
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKER_LOGIN_USERNAME_PROD }}
password: ${{ secrets.DOCKER_LOGIN_ACCESSTOKEN_PROD }}

- name: docker image 빌드 및 푸시
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile-Prod
push: true
tags: ${{ secrets.DOCKER_LOGIN_USERNAME_PROD }}/prod

cd:
needs: ci
runs-on: ubuntu-22.04

steps:
- name: docker 컨테이너 실행
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP_PROD }}
username: ${{ secrets.SERVER_USER_PROD }}
key: ${{ secrets.SERVER_KEY_PROD }}
script: |
cd ~
./deploy.sh
40 changes: 40 additions & 0 deletions .github/workflows/PROD-CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: PROD-CI

on:
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: ubuntu-22.04

steps:
- name: checkout
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'

- name: create application-secret.yml
run: |
# create application-secret.yml
cd ./src/main/resources
# application-secret.yml 파일 생성
touch ./application-secret.yml
# GitHub-Actions 에서 설정한 값을 application-secret.yml 파일에 쓰기..git
echo "${{ secrets.CI_APPLICATION_SECRET }}" >> ./application-secret.yml
# application.yml 파일 확인
cat ./application-secret.yml
shell: bash

- name: build
run: |
chmod +x gradlew
./gradlew build -x test
shell: bash
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ out/
.vscode/

application-secret.yml
application-local.yml
4 changes: 4 additions & 0 deletions Dockerfile-Dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM amd64/amazoncorretto:17
WORKDIR /app
COPY ./build/libs/Tiki-server-0.0.1-SNAPSHOT.jar /app/Tiki.jar
CMD ["java", "-Duser.timezone=Asia/Seoul" ,"-jar", "-Dspring.profiles.active=dev","Tiki.jar"]
4 changes: 4 additions & 0 deletions Dockerfile-Prod
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM amd64/amazoncorretto:17
WORKDIR /app
COPY ./build/libs/Tiki-server-0.0.1-SNAPSHOT.jar /app/Tiki.jar
CMD ["java", "-Duser.timezone=Asia/Seoul" ,"-jar", "-Dspring.profiles.active=prod","Tiki.jar"]
127 changes: 127 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
### 🏢 Architecture

![image](https://github.com/user-attachments/assets/16dd8458-9a0e-4020-86f8-28d63fee4315)

### 📖 Directory
```
📁 TIKI_SERVER
├── .github
├── .gradle
├── .idea
├── build
├── gradle
├── src.main
│ ├──java.com.tiki.server
│   ├── auth
│   ├── common
│   ├── document
│   ├── member
│   ├── controller
│   ├── dto
│   ├── entity
│   ├── message
│   ├── repository
│   ├── service
│   ├── memberteammanager
│   ├── team
│   ├── timeblock
```

### ✉️ Commit Messge Rules

**서버** 들의 **Git Commit Message Rules**

- 반영사항을 바로 확인할 수 있도록 작은 기능 하나라도 구현되면 커밋을 권장합니다.
- 기능 구현이 완벽하지 않을 땐, 각자 브랜치에 커밋을 해주세요.

### 📌 Commit Convention

**[태그] 제목의 형태**

| 태그 이름 | 설명 |
| :-------: | :-----------------------------------------------: |
| FEAT | 새로운 기능을 추가할 경우 |
| FIX | 버그를 고친 경우 |
| CHORE | 짜잘한 수정 |
| DOCS | 문서 수정 |
| INIT | 초기 설정 |
| TEST | 테스트 코드, 리펙토링 테스트 코드 추가 |
| RENAME | 파일 혹은 폴더명을 수정하거나 옮기는 작업인 경우 |
| STYLE | 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 |
| REFACTOR | 코드 리팩토링 |

### **커밋 타입**

- `[태그] 설명` 형식으로 커밋 메시지를 작성합니다.
- 태그는 영어를 쓰고 대문자로 작성합니다.

예시 >

```
[FEAT] 검색 api 추가
```

### **💻 Github mangement**

**티키** 들의 WorkFlow : **Gitflow Workflow**

- Develop, Feature, Hotfix 브랜치

- 개발(develop): 기능들의 통합 브랜치

- 기능 단위 개발(feature): 기능 단위 브랜치

- 버그 수정 및 갑작스런 수정(hotfix): 수정 사항 발생 시 브랜치

- 개발 브랜치 아래 기능별 브랜치를 만들어 작성합니다.

### ✍🏻 Code Convention

[에어비앤비 코드 컨벤션](https://github.com/airbnb/javascript)

### 📍 Gitflow 규칙

- Develop에 직접적인 commit, push는 금지합니다.
- 커밋 메세지는 다른 사람들이 봐도 이해할 수 있게 써주세요.
- 작업 이전에 issue 작성 후 pullrequest 와 issue를 연동해 주세요.
- 풀리퀘스트를 통해 코드 리뷰를 전원이 코드리뷰를 진행합니다.
- 기능 개발 시 개발 브랜치에서 feature/기능 으로 브랜치를 파서 관리합니다.
- feature 자세한 기능 한 가지를 담당하며, 기능 개발이 완료되면 각자의 브랜치로 Pull Request를 보냅니다.
- 각자가 기간 동안 맡은 역할을 전부 수행하면, 각자 브랜치에서 develop브랜치로 Pull Request를 보냅니다.
**develop 브랜치로의 Pull Request는 상대방의 코드리뷰 후에 merge할 수 있습니다.**

### ❗️ branch naming convention

- develop
- feature/issue_number-도메인-http Method-api
- fix/issue_number-도메인-http Method-api
- release/version_number
- hotfix/issue_number - Short Description

예시 >

```
feature/#3-user-post-api
```

### 📋 Code Review Convention

- P1: 꼭 반영해주세요 (Request changes)
- P2: 적극적으로 고려해주세요 (Request changes)
- P3: 웬만하면 반영해 주세요 (Comment)
- P4: 반영해도 좋고 넘어가도 좋습니다 (Approve)
- P5: 그냥 사소한 의견입니다 (Approve)

### 🚀 Test Code Convention

1. given, when, then을 사용한다.
2. 테스트 메서드명은 다음과 같이 작성한다. -> 메서드명_테스트하고자하는상태_예상되는결과 (ex. giveCotton_CottonCountIs0_NotEnoughCotton)
3. 설마 이런 거까지 생각해야하나싶은 거까지 작성한다. (ex. 솜뭉치를 여러 개 줄 수 있다.)
4. 다수의 값을 다룰 때는 @ParameterizedTest를 활용한다.

### 👩‍👧‍👧 Our Team

| **🍀 [남궁찬](https://github.com/Chan531)** |**🍀 [신민규](https://github.com/paragon0107)** |
|:-----------------------------------:|:-----------------------------------:|
| Server Developer | Server Developer |
| 프로젝트 세팅<br /> | 프로젝트 세팅<br /> |
Loading

0 comments on commit 64e7951

Please sign in to comment.