Skip to content

Commit

Permalink
Merge pull request #1 from jhkang1517/feat/cicd
Browse files Browse the repository at this point in the history
MARA-16 : CI/CD 구축
  • Loading branch information
jhkang1517 authored Jan 16, 2024
2 parents 1bbf071 + 6354f99 commit 392c528
Show file tree
Hide file tree
Showing 7 changed files with 132 additions and 9 deletions.
69 changes: 69 additions & 0 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: CI-CD

on:
push:
branches:
- main

env:
S3_BUCKET_NAME: mara-s3bucket
RESOURCE_PATH: ./src/main/resources/application.yml
CODE_DEPLOY_APPLICATION_NAME: mara-code-deploy
CODE_DEPLOY_DEPLOYMENT_GROUP_NAME: mara-deploy-group

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17

# [1]
# - name: Set yaml file
# uses: microsoft/variable-substitution@v1
# with:
# files: ${{ env.RESOURCE_PATH }}
# env:
## override.value: ${{ secrets.DI_FROM_SECRET }}
# override.value: 'from deploy.yaml'

- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
shell: bash

# [2]
- name: Build with Gradle
run: ./gradlew build
shell: bash

# [3]
- name: Make zip file
run: zip -r ./$GITHUB_SHA.zip .
shell: bash

# [4]
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

# [5]
- name: Upload to S3
run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.zip s3://$S3_BUCKET_NAME/$GITHUB_SHA.zip

# [6]
- name: Code Deploy
run: |
aws deploy create-deployment \
--deployment-config-name CodeDeployDefault.AllAtOnce \
--application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \
--deployment-group-name ${{ env.CODE_DEPLOY_DEPLOYMENT_GROUP_NAME }} \
--s3-location bucket=$S3_BUCKET_NAME,bundleType=zip,key=$GITHUB_SHA.zip
18 changes: 18 additions & 0 deletions appspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/github_action
overwrite: yes

permissions:
- object: /
pattern: "**"
owner: ubuntu
group: ubuntu

hooks:
ApplicationStart:
- location: scripts/gh_deploy.sh
timeout: 60
runas: ubuntu
36 changes: 36 additions & 0 deletions scripts/gh_deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash
PROJECT_NAME="github_action"
JAR_PATH="/home/ubuntu/github_action/build/libs/*.jar"
DEPLOY_PATH=/home/ubuntu/$PROJECT_NAME/
DEPLOY_LOG_PATH="/home/ubuntu/$PROJECT_NAME/deploy.log"
DEPLOY_ERR_LOG_PATH="/home/ubuntu/$PROJECT_NAME/deploy_err.log"
APPLICATION_LOG_PATH="/home/ubuntu/$PROJECT_NAME/application.log"
BUILD_JAR=$(ls $JAR_PATH)
JAR_NAME=$(basename $BUILD_JAR)

echo "===== 배포 시작 : $(date +%c) =====" >> $DEPLOY_LOG_PATH

echo "> build 파일명: $JAR_NAME" >> $DEPLOY_LOG_PATH
echo "> build 파일 복사" >> $DEPLOY_LOG_PATH
cp $BUILD_JAR $DEPLOY_PATH

echo "> 현재 동작중인 어플리케이션 pid 체크" >> $DEPLOY_LOG_PATH
CURRENT_PID=$(pgrep -f $JAR_NAME)

if [ -z $CURRENT_PID ]
then
echo "> 현재 동작중인 어플리케이션 존재 X" >> $DEPLOY_LOG_PATH
else
echo "> 현재 동작중인 어플리케이션 존재 O" >> $DEPLOY_LOG_PATH
echo "> 현재 동작중인 어플리케이션 강제 종료 진행" >> $DEPLOY_LOG_PATH
echo "> kill -9 $CURRENT_PID" >> $DEPLOY_LOG_PATH
kill -9 $CURRENT_PID
fi

DEPLOY_JAR=$DEPLOY_PATH$JAR_NAME
echo "> DEPLOY_JAR 배포" >> $DEPLOY_LOG_PATH
nohup java -jar -Dspring.profiles.active=local $DEPLOY_JAR --server.port=8081 >> $APPLICATION_LOG_PATH 2> $DEPLOY_ERR_LOG_PATH &

sleep 3

echo "> 배포 종료 : $(date +%c)" >> $DEPLOY_LOG_PATH
2 changes: 1 addition & 1 deletion src/main/kotlin/mara/server/domain/board/BoardDto.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package mara.server.domain.board

data class BoardRequest(
var title: String,
val userId:Long,
val userId: Long,
)

data class BoardResponse(
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/mara/server/domain/user/UserController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("/users")
class UserController(private val userService:UserService) {
class UserController(private val userService: UserService) {

@PostMapping
fun createUser(@RequestBody userRequest: UserRequest):CommonResponse<Long>{
fun createUser(@RequestBody userRequest: UserRequest): CommonResponse<Long> {
return success(userService.createUser(userRequest))
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package mara.server.domain.user

data class UserRequest(
val name:String
)
val name: String
)
6 changes: 3 additions & 3 deletions src/main/kotlin/mara/server/domain/user/UserService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import org.springframework.stereotype.Service
@Service
class UserService(private val userRepository: UserRepository) {

fun createUser(userRequest:UserRequest):Long{
val user=User(
fun createUser(userRequest: UserRequest): Long {
val user = User(
name = userRequest.name
)
return userRepository.save(user).userId
}
}
}

0 comments on commit 392c528

Please sign in to comment.