Skip to content

Commit

Permalink
[All] 배포 자동화 테스트 (#105)
Browse files Browse the repository at this point in the history
* [BE] feat: 구현 도메인 정의 구현(#7) (#8)

* refactor: 패키지명 변경

* feat: Member, Room 도메인 정의

* feat: 누락된 submissionDeadline, reviewDeadline 추가

* feat: 방 생성 기능 구현

* feat: 방 조회 기능 구현

* feat: lombok 추가

* feat: 방 참가 신청 기능 구현

* feat: 매칭 기능 구현 (#10)

* config: application 설정 파일 추가

* [BE] refactor: 코드 리팩토링(#12) (#14)

* style: 개행 및 어노테이션 순서 변경

* test: 중복 코드 테스트 픽스쳐 적용

* refactor: 중복 코드 메서드 분리

* test: 테스트 어노테이션 및 의존성 주입 방식 변경

* feat: 방 참가하는 기능 구현

* [BE] feat: 방 조회 API 구현(#12) (#19)

* feat: 방에 필요한 정보 추가

* feat: 방 조회 API 구현

* [BE] feat: 리뷰이 / 리뷰어 조회 기능 구현 (#5) (#20)

* feat: Member 에 이름 추가

* feat: 매칭 기능 참가자들로 작동하게 변경

* feat: 매칭,리뷰이/리뷰어 조회 응답 기능 구현

처음 초기화용 DataInitializer 구현

* [BE] config: CORS 설정 추가 (#21)

* refactor: 초기 데이터 수정

* config: CORS 설정

* [FE] feat: 해커톤 기능 구현(#1) (#25)

* style: globalStyle 적용

Co-authored-by: 강다빈 <[email protected]>
Co-authored-by: 최진실 <[email protected]>

* feat: 해커톤 기능 구현 완료

Co-authored-by: 강다빈 <[email protected]>
Co-authored-by: 최진실 <[email protected]>

---------

Co-authored-by: 강다빈 <[email protected]>
Co-authored-by: 최진실 <[email protected]>

* [BE] 백엔드 개발 작업용 사전 작업 (#27, #28, #39) (#40)

* feat: 패키지 재정리, 테스트 제거

* feat: 엔티티 설계에 따른 도메인 구현

* feat: 공통 에러타입,에러,응답 구현

* feat: 컨트롤러 로깅 AOP 구현(#27)

* feat: 문서화 위한 Swagger 설정 구현(#39)

* feat: 컴파일 에러 부분 null 로 변경, TODO 마킹

* style: 메소드 간 개행 분리

* [FE] fix: 서버(테스트)환경에서 MSW 사용할 수 있도록 수정 (#52)

* fix: 서버 MSW 적용되도록 수정

* fix: 반복문의 key 값 설정

* refactor: 도메인 수정 (#56)

* [BE] feat: 방 신청 구현(#32) (#58)

* feat: Room 엔티티내 외래키 제거

* feat: 예외 타입 추가, 동적 메시지 추가

* feat: RoomResponse 생성 부분 TODO 해결

* feat: RoomController RequestMapping 으로 그룹화

* feat: 방에 참가하는 기능 구현

* feat: 인증 기능 구현

* feat: 방에 참가하는 기능 요청-응답 기능 구현

* feat: 문서 관련 변수 설정

* feat: LoginMemberArgumentResolver WebConfig 에 추가

* feat: Logging 레벨 수정, 명세 추가

* style: 개행 수정

* config: 스토리북 배포 자동화 스크립트 설정 (#54)

* [BE] feat: 유저가 참여중인 방 리스트 조회 기능 구현(#29) (#60)

* feat: 유저가 참여중인 방 리스트 조회 기능 구현

* refactor: 참여중인 방 조회 기능 수정

* refactor: requestMapping을 이용한 중복 제거

* [FE] fix: 누락된 파일 다시 추가(#62) (#63)

* fix: 서버 MSW 적용되도록 수정

* fix: 반복문의 key 값 설정

* [FE] feat: IconButton 공통 컴포넌트 만들기(#48) (#64)

* chore: 절대경로 플러그인 설치

* fix: 스토리북에서 절대경로 설정

* fix: theme 적용을 위한 decorator 추가

* feat: IconButton 공통 컴포넌트 생성

* style: esmodule로 변경

* feat: IconButton div에서 button으로 변경, aria-label 추가

* [ALL] PR 템플릿 분리, CI 워크플로우 도입(#22) (#61)

* feat: PR 템플릿 분리

* feat: 워크플로우 추가

* feat: 백엔드 actions/checkout 버전 변경

* style: 워크플로우 내 name 수정

* [BE] feat: 모집 중인 방 리스트 API 구현(#30) (#68)

* feat: Room Entity가 필요한 정보 추가

* feat: 초기 데이터 구현

* feat: 사이트에 접속한 유저를 파악하기 위한 ArgumentResolver 구현

* feat: 모집중인 방 리스트를 조회하는 기능 구현

* refactor: 페이지 사이즈 수정

* test: 테스트 필드에 private 접근 제어자 추가

* [BE] feat: 리뷰어/리뷰이 매칭 기능 구현 (#38) (#70)

* refactor: 도메인 수정

* feat: 기본 랜덤 매칭 기능 구현

* feat: 매칭 서비스 구현

* refactor: 리뷰 사항 반영

컬럼 네이밍 통일성 있게 수정, 메서드 파라미터 순서 수정, 중복된 사용 제거

* refactor: 리뷰 사항 반영

불필요한 개행 제거, Boolean 대신 ENUM 으로 수정

* [BE] refactor: 패키지 구조 수정 (#76) (#77)

* refactor: 도메인 수정

* refactor: 패키지 구조 수정

* [BE] feat: 방 상세 정보 페이지 구현(#33, #36) (#78)

* feat: 방 상태 알려주는 기능 구현

* feat: 문자열 -> 배열, 배열 -> 문자열 변환하는 Converter 추가

* feat: Room Entity 내 키워드 배열로 변경

* feat: 방 상세정보 조회중 참여중인지 여부 추가

* feat: 유저 정보가 없을 시, 익명 유저 반환하게 변경

* style: 개행 정리

* refactor: ANONYMOUS public 으로 변경

* feat: String.join 으로 변경

* style: 개행 수정, 불필요한 파일 삭제

* style: 메소드 시그니처 변경, 불필요한 개행 제거

---------

Co-authored-by: HyunJoong Kim <[email protected]>

* [FE] test: MSW 핸들러 설정 추가(#57) (#59)

* chore: 엔드포인트 주소 상수화

* test: MSW 핸들러 설정 추가

* fix: 특정 방 참여 API 엔드포인트 수정

* [FE] feat: 버튼 공통 컴포넌트 생성(#47) (#79)

* chore: 절대경로 플러그인 설치

* fix: 스토리북에서 절대경로 설정

* fix: theme 적용을 위한 decorator 추가

* feat: IconButton 공통 컴포넌트 생성

* style: esmodule로 변경

* feat: button cursor를 global 스타일로 분리

* style: cursor 삭제

* feat: Button 컴포넌트 생성

* refactor: 불필요한 코드 제거

* fix: 스토리북에 react import

* [FE] fix: 스토리북 액션 에러 해결(#80)  (#81)

* fix: 스토리북 자동 배포 에러 해결

* fix: 깃허브 액션 코드 오타 수정

* [FE] refactor: 레이아웃 title, content 컴포넌트 리팩토링(#41) (#86)

* refactor: 파일명 변경 후 코드 리팩토링

* feat: ContentSection 스토리북 생성

* refactor: 다른 컴포넌트에 ContentSection 적용

* [FE] feat: 공통 Label 컴포넌트 추가(#65) (#82)

* feat: Label 컴포넌트 생성

* design: 컴포넌트 css 디테일 수정

* refactor: Label 컴포넌트의 display 속성 수정

* refactor: button 컴포넌트 적용 (#88)

* [ALL] PR 자동 생성 워크플로우 도입 제안(#85) (#95)

* feat: auto-pull-request workflow 추가

* feat: pr edit 부분 repository 지정

* feat: reviewer 부분 합침

* feat: 누락된 "" 추가

* feat: response 로그 추가

* feat: 최종본으로 수정

* feat: 주석 부분 제거

* style: 재생성 금지 확인용 변경

* feat: 리뷰어 배정 부분 제거

* feat: PR 멀티 템플릿 제거

* feat: all,fe 템플릿 제거

---------

Co-authored-by: youngsu5582 <[email protected]>

* feat: 한나 폰트 적용 (#93)

* [FE] fix: 스토리북 배포 문제 해결(#80) (#89)

* fix: 스토리북 자동 배포 에러 해결

* fix: 깃허브 액션 코드 오타 수정

* fix: Chromatic 배포 시 디렉토리 위치 안맞는 문제 해결

* feat: media 파일 생성 (#98)

Co-authored-by: jinsil <[email protected]>

* [BE] 리뷰어, 리뷰이 조회 API 기능 구현 (#26, #34) (#91)

* refactor: 도메인 수정

* feat: 리뷰어, 리뷰이 조회 API 기능 구현

* refactor: 중복된 기능 코드 제거

* docs: 메서드 시그니쳐 통일

* refactor: 리뷰 반영

* refactor: 리뷰 재반영

* [BE] feat:  모집 완료된 방 리스트 API 구현(#31) (#96)

* feat: 모집 완료된 방들을 조회하는 기능 구현

* refactor: 변수명 변경

* refactor: 변수명 변경

* refactor: 변수명 변경

* fix: 충돌 해결

* [FE] feat: 리뷰어, 리뷰이 테이블 개선(#46) (#101)

* config: react query 사용을 위한 설정

* fix: 이미지 URL 의 오타 수정

* style: 버튼 padding 크기 변경

* refactor: API 요청을 요구사항에 맞춰 변경

* config: 서버 주소를 루프백 주소로 변경

* fix: a 태그가 2중 중첩이 되어 발생하는 에러 해결

* feat: 변경된 요구사항에 맞춰 API 요청 코드 변경 및 react query 적용

* fix: 깃허브 액션 동작 안하는 문제 해결

* refactor: a 태그와 div 태그 하나로 합침

* refactor: querykey 의 prefix get 제거

---------

Co-authored-by: Lee sang Yeop <[email protected]>

* [BE] 방 상세 정보 페이지 - 리뷰 완료 버튼 API(#35) (#100)

* feat: 리뷰 도메인,레포지토리 추가

* feat: 매치 결과에 리뷰 완료 상태로 변경하는 로직 추가

* feat: 리뷰 완료 기능 구현

* feat: 컨트롤러 구현

* feat: 백엔드 CI 내 types 변경

* refactor: DTO 클래스명 변경

* feat: 피드백 반영 수정

* feat: 2차 피드백 반영

---------

Co-authored-by: youngsu5582 <[email protected]>

* [FE] refactor: 방 카드 컴포넌트(#42) (#102)

* style: theme으로 지정한 xSmall의 line-height값 수정

* feat: 날 문자열을 포맷팅하는 formatDateString 유틸함수 생성

* design: Label 컴포넌트 border 수정

* refactor: RoomCard 컴포넌트 수정된 디자인에 맞게 수정 및 스토리북 테스트 코드 추가

* design: RoomCard 컴포넌트 반응형 디자인

---------

Co-authored-by: 00kang <[email protected]>

---------

Co-authored-by: youngsu5582 <[email protected]>
Co-authored-by: gyungchan Jo <[email protected]>
Co-authored-by: HyunJoong Kim <[email protected]>
Co-authored-by: ashsty <[email protected]>
Co-authored-by: 강다빈 <[email protected]>
Co-authored-by: 최진실 <[email protected]>
Co-authored-by: 최진실 <[email protected]>
Co-authored-by: 강다빈 <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: jinsil <[email protected]>
Co-authored-by: 00kang <[email protected]>
  • Loading branch information
12 people authored Jul 23, 2024
1 parent a9d37c1 commit a16dd1b
Show file tree
Hide file tree
Showing 152 changed files with 5,429 additions and 389 deletions.
6 changes: 0 additions & 6 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
<!--
PR 이름 컨벤션
[BE] feat: ~~(#issueNum)
[FE] feat: ~~(#issueNum)
-->

## 📌 관련 이슈

- closed: #issueNum
Expand Down
98 changes: 98 additions & 0 deletions .github/workflows/auto-pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Auto Create Pull Request

on:
push:
branches:
- 'feat/#*'
- 'refactor/#*'
- 'fix/#*'

jobs:
auto-pull-request:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Extract Branch Prefix, Issue Number
id: extract
run: |
branch_name="${GITHUB_REF#refs/heads/}"
echo "BRANCH_NAME=$branch_name" >> $GITHUB_ENV
if [[ "$branch_name" =~ ^(feat|fix|refactor)/#([0-9]+)$ ]]; then
branch_prefix="${BASH_REMATCH[1]}"
issue_number="${BASH_REMATCH[2]}"
echo "BRANCH_PREFIX=$branch_prefix" >> $GITHUB_ENV
echo "ISSUE_NUMBER=$issue_number" >> $GITHUB_ENV
else
exit 0
fi
- name: Check for Already Exist
id: check_pr
run: |
branch_name=${{ env.BRANCH_NAME }}
existing_pr=$(gh pr list --state open -H "$branch_name" -B develop --json number -q '.[] | .number')
if [ -n "$existing_pr" ]; then
echo "EXISTED=TRUE" >> $GITHUB_ENV
echo "Alreadt Exist in https://github.com/${{ github.repository }}/pull/$existing_pr"
exit 0
fi
env:
GH_TOKEN: ${{ github.token }}

- name: Fetch Issue Detail
if: ${{ !env.EXISTED }}
run: |
issue_number="${{ env.ISSUE_NUMBER }}"
response=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/${{ github.repository }}/issues/$issue_number")
assignees=$(echo "$response" | jq -r '.assignees[].login' | tr '\n' ', ' | sed 's/, $//')
assignees=$(echo "$assignees" | rev | cut -c 2- | rev)
title=$(echo "$response" | jq -r '.title')
labels=$(echo "$response" | jq -r '.labels[].name' | tr '\n' ', ' | sed 's/, $//')
labels=$(echo "$labels" | rev | cut -c 2- | rev)
pr_title="${title}(#${issue_number})"
echo "$response" | jq -r '.body' > issue_body.txt
echo "ASSIGNEES=$assignees" >> $GITHUB_ENV
echo "LABELS=$labels" >> $GITHUB_ENV
echo "TITLE=$title" >> $GITHUB_ENV
echo "PR_TITLE=$pr_title" >> $GITHUB_ENV
echo "ISSUE_BODY_FILE=issue_body.txt" >> $GITHUB_ENV
- name: Generate PR Body
if: ${{ !env.EXISTED }}
id: generate-body
run: |
issue_number="${{ env.ISSUE_NUMBER }}"
echo "## 📌 관련 이슈" >> body.md
echo "" >> body.md
echo "- closed : #${issue_number} " >> body.md
echo "" >> body.md
echo "## ✨ PR 세부 내용" >> body.md
echo "" >> body.md
echo "<!-- 수정/추가한 내용을 적어주세요. -->" >> body.md
summary=$(cat body.md)
echo "PR_BODY<<EOF" >> $GITHUB_ENV
echo "$summary" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Create Pull Request
if: ${{ !env.EXISTED }}
run: |
gh pr create --title "${{ env.PR_TITLE }}" --body "${{ env.PR_BODY }}" --base "develop" --label "${{ env.LABELS }}"
env:
GH_TOKEN: ${{ github.token }}
56 changes: 56 additions & 0 deletions .github/workflows/backend-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Backend CI

on:
pull_request:
branches:
- 'develop'
paths: ['backend/**']
types:
- opened
- synchronize
- reopened

defaults:
run:
working-directory: backend

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Repository checkout
uses: actions/checkout@v4

- name: Setup java 17
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'zulu'

- name: Cache gradle packages
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Assign grant gradlew
run: chmod +x gradlew

- name: Test with gradle
run: ./gradlew --info test

- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
files: '**/build/test-results/test/TEST-*.xml'

- name: Publish test report
uses: mikepenz/action-junit-report@v4
if: always()
with:
report_paths: '**/build/test-results/test/TEST-*.xml'
43 changes: 43 additions & 0 deletions .github/workflows/frontend-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Frontend CI

on:
pull_request:
branches:
- 'develop'
paths: ['frontend/**']
types:
- opened
- synchronize
- reopened

defaults:
run:
working-directory: frontend

jobs:
build:
timeout-minutes: 10
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]

steps:
# 해당 저장소의 코드를 가져온다
- name: Checkout
uses: actions/checkout@v4

# 노드 설치
- name: Install Nodejs
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

# 패키지 설치
- name: Install dependencies
run: npm ci

# 테스트
- name: Run tests
run: npm test
46 changes: 46 additions & 0 deletions .github/workflows/storybook-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Frontend Storybook Deploy
on:
pull_request:
branches:
- 'develop'
paths: ['frontend/**/*.stories.ts', 'frontend/**/*.stories.tsx']
types:
- opened
- synchronize
- reopened

defaults:
run:
working-directory: frontend

jobs:
chromatic:
timeout-minutes: 10
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]

steps:
# 해당 저장소의 코드를 가져온다
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

# 노드 설치
- name: Install Nodejs
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
run: npm ci

# 스토리북 배포
- name: Run Chromatic
uses: chromaui/action@latest
with:
workingDir: frontend
projectToken: ${{ secrets.STORY_BOOK_TOKEN }}
1 change: 1 addition & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ dependencies {

// Etc
implementation 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// Database
runtimeOnly 'com.h2database:h2'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package corea.backend;
package corea;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BackendApplication {

public static void main(String[] args) {
public static void main(final String[] args) {
SpringApplication.run(BackendApplication.class, args);
}

Expand Down
Loading

0 comments on commit a16dd1b

Please sign in to comment.