forked from Kernel360/F1-WashFit-BE
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5ed3bc9
commit ebefb48
Showing
2 changed files
with
132 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
name: Project CI/CD with AWS | ||
|
||
on: | ||
push: #test | ||
branches: [ "feature/deploy-in-aws" ] # 추후 main 으로 변경해야함 | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: "17" | ||
distribution: "temurin" | ||
|
||
- name: Replace SQL Queries | ||
run: | | ||
file_path="${{ secrets.TARGET_SQL_PATH }}" | ||
old_text="changeRequired" | ||
new_text="${{ secrets.PUBLIC_KEY }}" | ||
sed -i "s/$old_text/$new_text/g" $file_path | ||
- name: Set application yml file (api) | ||
uses: microsoft/variable-substitution@v1 | ||
with: | ||
files: ./module-api/src/main/resources/application.yml | ||
env: | ||
spring.profiles.active: "prod" | ||
|
||
- name: Set application-prod yml file (api) | ||
uses: microsoft/variable-substitution@v1 | ||
with: | ||
files: ./module-api/src/main/resources/application-prod.yml | ||
env: | ||
spring.datasource.url: ${{ secrets.DB_URL_AWS }} | ||
spring.datasource.username: ${{ secrets.DB_USER }} | ||
spring.datasource.password: ${{ secrets.DB_PW }} | ||
|
||
- name: Grant execute permission And Build with Gradle (api) | ||
working-directory: ./module-api | ||
run: | | ||
chmod +x ./gradlew | ||
./gradlew clean build | ||
- name: Configure AWS credentials | ||
uses: aws-actions/configure-aws-credentials@v4 | ||
with: | ||
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | ||
aws-region: ap-northeast-2 | ||
|
||
- name: Login to Amazon ECR | ||
id: login-ecr | ||
uses: aws-actions/amazon-ecr-login@v2 | ||
|
||
- name: Build, tag, and push docker image to Amazon ECR | ||
working-directory: ./module-api | ||
env: | ||
REGISTRY: ${{ steps.login-ecr.outputs.registry }} | ||
REPOSITORY: washfit-api | ||
IMAGE_TAG: ${{ github.sha }} | ||
run: | # --platform=linux/amd64 (없이도 되는지 확인 필요) | ||
docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG . | ||
docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG | ||
# - name: Application Run | ||
# uses: appleboy/[email protected] | ||
# with: | ||
# host: ${{ secrets.VULTR_IP }} | ||
# username: ${{ secrets.VULTR_USERNAME }} | ||
# password: ${{ secrets.VULTR_PW }} | ||
# script: | | ||
# # Install Docker and Docker Compose | ||
# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo | ||
# dnf install -y docker-ce docker-ce-cli containerd.io | ||
# systemctl start docker | ||
# systemctl enable docker | ||
# curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | ||
# chmod +x /usr/local/bin/docker-compose | ||
# | ||
# # Docker Compose | ||
# mkdir -p deploy | ||
# cd deploy | ||
# echo "${{ secrets.DOCKER_COMPOSE_AWS }}" > docker-compose.yml | ||
# docker-compose pull | ||
# docker-compose down | ||
# docker-compose up -d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
spring: | ||
datasource: | ||
driver-class-name: org.postgresql.Driver | ||
url: ${DB_URL_AWS} | ||
username: ${DB_USER} | ||
password: ${DB_PW} | ||
jpa: | ||
show-sql: true | ||
properties: | ||
hibernate: | ||
format_sql: true | ||
dialect: org.hibernate.dialect.PostgreSQLDialect | ||
ddl-auto: validate | ||
flyway: | ||
enabled: true | ||
baseline-on-migrate: true | ||
#JPA보다 flyway 우선 실행 | ||
autoconfigure: | ||
exclude: org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration | ||
|
||
logging: | ||
file: | ||
path: ./logs/api/ | ||
name: api-log | ||
logback: | ||
rollingpolicy: | ||
max-history: 14 | ||
max-file-size: 50MB | ||
total-size-cap: 5GB | ||
|
||
management: | ||
endpoints: | ||
web: | ||
exposure: | ||
include: "*" | ||
endpoint: | ||
health: | ||
show-details: always |