Skip to content

Update aws.yml

Update aws.yml #16

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
# 코드 체크아웃
- name: Checkout repository
uses: actions/checkout@v2
# JDK 설치
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: make application.yml
run: |
mkdir -p ./src/main/resources
cd ./src/main/resources
touch ./application.yml
echo "${{ secrets.APPLICATION_PROD }}" > ./application.yml
# Gradle Build
- name: Build with Gradle
run: ./gradlew build
# DockerHub 로그인
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
# DockerHub Push
- name: Build and Push Docker image
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/name-solver-prod .
docker push ${{ secrets.DOCKER_USERNAME }}/name-solver-prod
deploy:
runs-on: ubuntu-latest
needs: build
steps:
# AWS 배포
- name: SSH to EC2 and deploy
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_PRIVATE_KEY }}
script: |
IMAGE_NAME=${{ secrets.DOCKER_USERNAME }}/name-solver-prod
CONTAINER_NAME=name-solver-prod
# 기존 컨테이너 중지 및 삭제
sudo docker stop $CONTAINER_NAME || true
sudo docker rm $CONTAINER_NAME || true
# 기존 이미지 삭제
sudo docker rmi $IMAGE_NAME || true
# 최신 이미지 가져오기
sudo docker pull $IMAGE_NAME
# 새 컨테이너 실행
sudo docker run -d \
--name $CONTAINER_NAME \
-p 80:8080 \
-e SPRING_PROFILES_ACTIVE=prod \
$IMAGE_NAME