Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
a7e60d0
feat(config): add AsyncConfig with s3UploadExecutor thread pool
Jjiggu Jun 4, 2025
71155f8
feat(config): add AwsS3Config for AwsS3Client bean configuration
Jjiggu Jun 4, 2025
68a5c2b
chore(build): add AWS S3 and Resilience4j depende
Jjiggu Jun 4, 2025
27a8dad
feat(s3): implements S3Service with async upload and delete method
Jjiggu Jun 4, 2025
7624cb6
chore(security): permit all requests to /stores/**
Jjiggu Jun 4, 2025
57d554c
feat(store-images): add StoreImage entity
Jjiggu Jun 4, 2025
cfb4cfb
feat(store-images): add endpoints for uploading and deleting store im…
Jjiggu Jun 4, 2025
95c2b71
feat(store-images): add StoreImageRepository
Jjiggu Jun 4, 2025
eb1ee68
feat(store-images): add StoreImageService for batch upload and delete…
Jjiggu Jun 4, 2025
bf8a1de
feat(store-images): add StoreImageUploadResponse dto with fromEntity …
Jjiggu Jun 4, 2025
2be16e4
refactor(store): remove setters, imageUrl, and add update methods
Jjiggu Jun 4, 2025
05f9bb6
refactor(store): remove imageUrl field
Jjiggu Jun 4, 2025
efa11ea
refactor(store): remove imageUrl, add List<StoreImageUploadResponse>
Jjiggu Jun 4, 2025
c2f4ffb
refactor(store): rename fromEntity to of in StoreReadResponse
Jjiggu Jun 4, 2025
55a5b5d
feat(store): include store image information in StoreReadDto mapping
Jjiggu Jun 4, 2025
455f6bf
refactor(store): remove imageUrl
Jjiggu Jun 4, 2025
b38796b
Merge pull request #15 from GTable/feature/#14-image-upload
Jjiggu Jun 4, 2025
651c8d5
feat(store-images): add file count and file size validation for uploads
Jjiggu Jun 4, 2025
26cdf37
refactor(store-image): improve async synchronization and transaction …
Jjiggu Jun 4, 2025
b241273
chore(build): update AWS SDK dependencies to newer versions
Jjiggu Jun 4, 2025
c7b4e21
Merge pull request #17 from GTable/feature/#14-image-upload
Jjiggu Jun 4, 2025
6c1c4ed
chore(build): update AWS SDK dependencies to newer versions
Jjiggu Jun 6, 2025
edb22bc
feat(menu): add Menu Entity
Jjiggu Jun 6, 2025
ee04a42
feat(menu): add endpoints for create, get Menu
Jjiggu Jun 6, 2025
95ab00f
feat(menu): add MenuCreateRequest dto with toEntity method
Jjiggu Jun 6, 2025
ddd9263
feat(menu): add MenuCreateResponse dto with fromEntity method
Jjiggu Jun 6, 2025
04da6f2
feat(menu): add MenuReadDto dto with fromEntity method
Jjiggu Jun 6, 2025
a41dbe5
feat(menu): add MenuReadResponse dto with of method
Jjiggu Jun 6, 2025
dbb5e9f
feat(menu): add MenuRepository with findAllByStoreId method
Jjiggu Jun 6, 2025
687c92f
feat(menu): MenuService with create and read methods including image …
Jjiggu Jun 6, 2025
2815b87
feat(menu-image): add MenuImage entity with BaseTimeEntity and relati…
Jjiggu Jun 6, 2025
09f0e01
feat(menu-image): add endpoints for upload, delete Menu Images
Jjiggu Jun 6, 2025
01f21f8
feat(menu-image): add MenuImageRepository with findByMenu method
Jjiggu Jun 6, 2025
86a5215
feat(menu-image): add MenuImageService for upload and delete operations
Jjiggu Jun 6, 2025
38ed521
feat(menu-image): add MenuImageUploadResponse dto with fromEntity fac…
Jjiggu Jun 6, 2025
35cb4fb
refactor(s3): add type parameter to createFileKey for generic file ke…
Jjiggu Jun 6, 2025
13eace4
chore(security): temporarily permit all requests to /menus/**
Jjiggu Jun 6, 2025
5bee7f4
refactor(s3): add type parameter to createFileKey for generic file ke…
Jjiggu Jun 6, 2025
eb09e71
build: ci cd 배포를 위한 멀티 모듈 이전으로 원상 복귀
Jjiggu Jun 16, 2025
0db3c3b
docs: .gitignore 추가
Jjiggu Jun 16, 2025
79869bc
build: 배포 자동화 코드 추가
Jjiggu Jun 16, 2025
559a25e
build: 배포 자동화 코드 추가
Jjiggu Jun 16, 2025
b0a5dc6
build: 배포 자동화 코드 추가
Jjiggu Jun 16, 2025
83a631d
Merge branch 'develop' into feature/#25-cicd-pipeline
Jjiggu Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Dev CICD

on:
push:
branches:
- develop
env:
PROJECT_NAME: NoWait
AWS_REGION: ap-northeast-2a
AWS_S3_BUCKET: nowait-deploy-github-actions
AWS_CODE_DEPLOY_APPLICATION: nowaiting
AWS_CODE_DEPLOY_GROUP: nowaiting-deploy-dev

jobs:
build-with-gradle:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

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

- name: gradlew에 실행 권한 부여
run: chmod +x ./gradlew

- name: Set YML
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_DEV_YML }}" | base64 --decode > src/main/resources/application-dev.yml
find src

- name: 프로젝트 빌드
run: ./gradlew clean build -x test

- name: AWS credential 설정
uses: aws-actions/configure-aws-credentials@v1
with:
aws-region: ${{ env.AWS_REGION }}
aws-access-key-id: ${{ secrets.DEVSERVER_CICD_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.DEVSERVER_CICD_SECRET_KEY }}

- name: S3에 업로드
run: aws deploy push --application-name ${{ env.AWS_CODE_DEPLOY_APPLICATION }} --ignore-hidden-files --s3-location s3://$AWS_S3_BUCKET/$PROJECT_NAME/$GITHUB_SHA.zip --source .

- name: EC2에 배포
run: |
aws deploy create-deployment \
--application-name ${{ env.AWS_CODE_DEPLOY_APPLICATION }} \
--deployment-config-name CodeDeployDefault.AllAtOnce \
--deployment-group-name ${{ env.AWS_CODE_DEPLOY_GROUP }} \
--s3-location bucket=$AWS_S3_BUCKET,key=$PROJECT_NAME/$GITHUB_SHA.zip,bundleType=zip


297 changes: 297 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,297 @@
HELP.md
.gradle
build/
#!gradle/wrapper/gradle-wrapper.jar

### setiing files
.DS_Store
src/main/resources/application.yml

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### ReactNative ###
# React Native Stack Base

.expo
__generated__

### ReactNative.Xcode Stack ###
## User settings
xcuserdata/

## Xcode 8 and earlier
*.xcscmblueprint
*.xccheckout

### ReactNative.Gradle Stack ###
.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

### ReactNative.macOS Stack ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### ReactNative.Linux Stack ###
*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

### ReactNative.Node Stack ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

### ReactNative.Buck Stack ###
buck-out/
.buckconfig.local
.buckd/
.buckversion
.fakebuckversion

### ReactNative.Android Stack ###
# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Log/OS Files

# Android Studio generated files and folders
captures/
.externalNativeBuild/
.cxx/
*.apk
output.json

# IntelliJ
*.iml
.idea/
misc.xml
deploymentTargetDropDown.xml
render.experimental.xml

# Keystore files
*.jks
*.keystore

# Google Services (e.g. APIs or Firebase)
google-services.json

# Android Profiling
*.hprof

# data insert
/src/main/resources/data.sql

# End of https://www.toptal.com/developers/gitignore/api/reactnative
20 changes: 20 additions & 0 deletions appspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
version: 0.0
os: linux

files:
- source: /
destination: /home/ubuntu/spring-github-action
overwrite: yes

permissions:
- object: /
owner: ubuntu
group: ubuntu

hooks:
AfterInstall:
- location: scripts/stop.sh
timeout: 60
ApplicationStart:
- location: scripts/start.sh
timeout: 60
8 changes: 8 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,14 @@ dependencies {
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'


// S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
// Resilience4j
implementation 'io.github.resilience4j:resilience4j-spring-boot2:1.7.1'
implementation 'io.github.resilience4j:resilience4j-bulkhead:1.7.1'
// 비동기 실행
implementation 'org.springframework.boot:spring-boot-starter-aop'

testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.awaitility:awaitility:4.3.0'
testImplementation 'com.h2database:h2'
Expand Down
Binary file removed gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 0 additions & 7 deletions gradle/wrapper/gradle-wrapper.properties

This file was deleted.

Loading