Skip to content

Commit

Permalink
chore: aws ecr push 테스트
Browse files Browse the repository at this point in the history
  • Loading branch information
linglong67 committed Feb 7, 2024
1 parent 5ed3bc9 commit ebefb48
Show file tree
Hide file tree
Showing 2 changed files with 132 additions and 0 deletions.
94 changes: 94 additions & 0 deletions .github/workflows/cicd-prod.yml
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
38 changes: 38 additions & 0 deletions module-api/src/main/resources/static/application-prod.yml
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

0 comments on commit ebefb48

Please sign in to comment.