Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev/prod 환경 구분 설정 prod에 반영 #278

Merged
merged 24 commits into from
Feb 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6d893aa
Update gradle.yml
seunghaLim Feb 19, 2024
9bb2a3b
Update cd.yml
seunghaLim Feb 19, 2024
2808604
Update cd.yml
seunghaLim Feb 19, 2024
c047a4c
Create dev-ci.yml
seunghaLim Feb 19, 2024
bce8fdf
Merge pull request #272 from GEON-PPANG/seunghaLim-patch-1
seunghaLim Feb 19, 2024
9b8b822
Update and rename gradle.yml to prod-ci.yml
seunghaLim Feb 19, 2024
6e46c5d
Merge pull request #273 from GEON-PPANG/seunghaLim-patch-2
seunghaLim Feb 19, 2024
e5ef7c3
Update cd.yml
seunghaLim Feb 20, 2024
b21d01b
Update and rename cd.yml to prod-cd.yml
seunghaLim Feb 20, 2024
3f79810
Create dev-cd.yml
seunghaLim Feb 20, 2024
1f7f19b
Rename deploy.sh to prod-deploy.sh
seunghaLim Feb 20, 2024
342a8fd
Rename deploy.sh to prod-deploy.sh
seunghaLim Feb 20, 2024
fae68fd
Create dev-deploy.sh
seunghaLim Feb 20, 2024
2efc38d
Merge pull request #274 from GEON-PPANG/seunghaLim-patch-3
seunghaLim Feb 20, 2024
9896977
Merge pull request #275 from GEON-PPANG/seunghaLim-patch-5
seunghaLim Feb 20, 2024
7e18152
Merge pull request #276 from GEON-PPANG/seunghaLim-patch-6
seunghaLim Feb 20, 2024
d51ef83
Merge pull request #277 from GEON-PPANG/seunghaLim-patch-4
seunghaLim Feb 20, 2024
67d5b51
Update logback-spring.xml
seunghaLim Feb 20, 2024
e6024f6
Update dev-deploy.sh
seunghaLim Feb 20, 2024
58fb20a
Update dev-deploy.sh
seunghaLim Feb 20, 2024
3c14b7e
Update dev-deploy.sh
seunghaLim Feb 20, 2024
5d648bb
Update prod-deploy.sh
seunghaLim Feb 20, 2024
f3d513f
Update dev-ci.yml
seunghaLim Feb 20, 2024
3353587
Update prod-cd.yml
seunghaLim Feb 20, 2024
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
119 changes: 119 additions & 0 deletions .github/workflows/dev-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# 워크플로우의 이름 지정
name: DEV-GUNBBANG-SERVER CD

# 해당 workflow가 언제 실행될 것인지에 대한 트리거를 지정
on:
push:
branches: [ dev ] # main branch로 push 될 때 실행됩니다.

env:
S3_BUCKET_NAME: gunbbang-bucket-release
ZIP_FILE_NAME: dev-gunbbang-server

jobs:
build:
name: Code deployment
environment: dev
runs-on: ubuntu-latest

steps:

# 1) 워크플로우 실행 전 기본적으로 체크아웃 필요
- name: checkout
uses: actions/checkout@v3

# 2) JDK 11버전 설치, 다른 JDK 버전을 사용하다면 수정
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'

# 3) 환경변수 파일 생성
- name: make application.properties 파일 생성
run: |
pwd
## create application.yml in api module
## mkdir ./api/src/main/resources
cd ./api/src/main/resources
touch ./application.yml
ls -al
cd /home/runner/work/GEON-PPANG-SERVER/GEON-PPANG-SERVER


## create application.yml in client module
mkdir ./client/client-feign/src/main/resources
cd ./client/client-feign/src/main/resources
touch ./application.yml
touch ./client.yml
ls -al
cd /home/runner/work/GEON-PPANG-SERVER/GEON-PPANG-SERVER


## create application.yml in storage module
mkdir ./storage/db-core/src/main/resources
cd ./storage/db-core/src/main/resources
touch ./application.yml
touch ./db-core.yml
ls -al
cd /home/runner/work/GEON-PPANG-SERVER/GEON-PPANG-SERVER
pwd

# GitHub-Actions 에서 설정한 값을 application.yml 파일에 쓰기
echo "${{ secrets.DEV_API_APPLICATION_YML }}" >> ./api/src/main/resources/application.yml
echo "${{ secrets.DEV_DB_CORE_APPLICATION_YML }}" >> ./storage/db-core/src/main/resources/application.yml
echo "${{ secrets.DEV_DB_CORE }}" >> ./storage/db-core/src/main/resources/db-core.yml
echo "${{ secrets.DEV_CLIENT }}" >> ./client/client-feign/src/main/resources/client.yml
echo "${{ secrets.DEV_CLIENT_APPLICATION_YML }}" >> ./client/client-feign/src/main/resources/application.yml

shell: bash

# 이 워크플로우는 gradle build
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle # 실제 application build(-x 옵션을 통해 test는 제외)
run: ./gradlew build -x test

# 디렉토리 생성
- name: Make Directory
run: mkdir -p dev-deploy

# Jar 파일 복사
- name: Copy Jar
run: cp ./api/build/libs/*.jar ./dev-deploy

# appspec.yml 파일 복사
- name: Copy appspec.yml
run: cp appspec.yml ./dev-deploy

# script files 복사
- name: Copy script
run: cp ./scripts/dev-deploy.sh ./dev-deploy/deploy.sh

- name: Make zip file
run: zip -r ./$ZIP_FILE_NAME.zip ./dev-deploy
shell: bash

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2

- name: Upload to S3
run: aws s3 cp --region ap-northeast-2 ./$ZIP_FILE_NAME.zip s3://$S3_BUCKET_NAME/

# Deploy
- name: Deploy
env:
AWS_ACCESS_KEY_ID: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }}
run:
aws deploy create-deployment
--application-name gunbbang-server-codedeploy
--deployment-group-name dev-gunbbang-server-codedeploy-group
--file-exists-behavior OVERWRITE
--s3-location bucket=gunbbang-bucket-release,bundleType=zip,key=$ZIP_FILE_NAME.zip
--region ap-northeast-2
85 changes: 85 additions & 0 deletions .github/workflows/dev-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: DEV-Gunbbang-Server CI

on:
push:
branches: [ "dev" ]
pull_request:
branches: [ "dev" ]

permissions:
contents: read

jobs:
build:
environment: dev
runs-on: ubuntu-latest
steps:
# 1) 워크플로우 실행 전 기본적으로 체크아웃 필요
- name: checkout
uses: actions/checkout@v3

# 2) JDK 11버전 설치, 다른 JDK 버전을 사용하다면 수정
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'

# 3) 환경변수 파일 생성
- name: make application.yml 파일 생성
run: |
pwd
## create application.yml in api module
## mkdir ./api/src/main/resources
cd ./api/src/main/resources
touch ./application.yml
ls -al
cd /home/runner/work/GEON-PPANG-SERVER/GEON-PPANG-SERVER


## create application.yml in client module
mkdir ./client/client-feign/src/main/resources
cd ./client/client-feign/src/main/resources
touch ./application.yml
touch ./client.yml
ls -al
cd /home/runner/work/GEON-PPANG-SERVER/GEON-PPANG-SERVER


## create application.yml in storage module
mkdir ./storage/db-core/src/main/resources
cd ./storage/db-core/src/main/resources
touch ./application.yml
touch ./db-core.yml
ls -al
cd /home/runner/work/GEON-PPANG-SERVER/GEON-PPANG-SERVER


# GitHub-Actions 에서 설정한 값을 application.yml 파일에 쓰기
echo "${{ secrets.DEV_API_APPLICATION_YML }}" >> ./api/src/main/resources/application.yml
echo "${{ secrets.DEV_DB_CORE_APPLICATION_YML }}" >> ./storage/db-core/src/main/resources/application.yml
echo "${{ secrets.DEV_DB_CORE }}" >> ./storage/db-core/src/main/resources/db-core.yml
echo "${{ secrets.DEV_CLIENT }}" >> ./client/client-feign/src/main/resources/client.yml
echo "${{ secrets.DEV_CLIENT_APPLICATION_YML }}" >> ./client/client-feign/src/main/resources/application.yml

shell: bash

# 이 워크플로우는 gradle build
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle # 실제 application build(-x 옵션을 통해 test는 제외)
run: ./gradlew build -x test
21 changes: 11 additions & 10 deletions .github/workflows/cd.yml → .github/workflows/prod-cd.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# 워크플로우의 이름 지정
name: GUNBBANG-SERVER CD
name: PROD-GUNBBANG-SERVER CD

# 해당 workflow가 언제 실행될 것인지에 대한 트리거를 지정
on:
push:
branches: [ dev ] # main branch로 push 될 때 실행됩니다.
branches: [ prod ] # main branch로 push 될 때 실행됩니다.

env:
S3_BUCKET_NAME: gunbbang-bucket-release
ZIP_FILE_NAME: prod-gunbbang-server

jobs:
build:
Expand Down Expand Up @@ -76,22 +77,22 @@ jobs:

# 디렉토리 생성
- name: Make Directory
run: mkdir -p deploy
run: mkdir -p prod-deploy

# Jar 파일 복사
- name: Copy Jar
run: cp ./api/build/libs/*.jar ./deploy
run: cp ./api/build/libs/*.jar ./prod-deploy

# appspec.yml 파일 복사
- name: Copy appspec.yml
run: cp appspec.yml ./deploy
run: cp appspec.yml ./prod-deploy

# script files 복사
- name: Copy script
run: cp ./scripts/*.sh ./deploy
run: cp ./scripts/prod-deploy.sh ./prod-deploy/deploy.sh

- name: Make zip file
run: zip -r ./gunbbang_server.zip ./deploy
run: zip -r ./$ZIP_FILE_NAME.zip ./prod-deploy
shell: bash

- name: Configure AWS credentials
Expand All @@ -102,7 +103,7 @@ jobs:
aws-region: ap-northeast-2

- name: Upload to S3
run: aws s3 cp --region ap-northeast-2 ./gunbbang_server.zip s3://$S3_BUCKET_NAME/
run: aws s3 cp --region ap-northeast-2 ./$ZIP_FILE_NAME.zip s3://$S3_BUCKET_NAME/

# Deploy
- name: Deploy
Expand All @@ -112,7 +113,7 @@ jobs:
run:
aws deploy create-deployment
--application-name gunbbang-server-codedeploy
--deployment-group-name gunbbang-server-codedeploy-group
--deployment-group-name prod-gunbbang-server-codedeploy-group
--file-exists-behavior OVERWRITE
--s3-location bucket=gunbbang-bucket-release,bundleType=zip,key=gunbbang_server.zip
--s3-location bucket=gunbbang-bucket-release,bundleType=zip,key=$ZIP_FILE_NAME.zip
--region ap-northeast-2
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Gunbbang-Server CI
name: PROD-Gunbbang-Server CI

on:
push:
branches: [ "dev" ]
branches: [ "prod" ]
pull_request:
branches: [ "dev" ]
branches: [ "prod" ]

permissions:
contents: read
Expand Down
Loading
Loading