Merge pull request #122 from FreakPeople/feature/#121-퀴즈데이터를-랜덤으로-가져오… #21
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
name: deploy | |
on: | |
push: | |
branches: [ develop ] | |
workflow_dispatch: | |
jobs: | |
test-and-deploy: | |
name: 테스트 및 배포 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: 레포지토리를 체크아웃 | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: JDK 21 설치 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 21 | |
distribution: temurin | |
- name: application-prod.yml 만들기 | |
run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application-prod.yml | |
- name: 빌드 및 테스트 | |
run: ./gradlew clean build | |
- name: AWS Resource에 접근할 수 있게 AWS credentials 설정(GitHub Actions -> ECR) | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-region: ap-northeast-2 | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
- name: ECR 로그인 | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v2 | |
- name: Docker 이미지 생성 | |
run: docker build -t cstar-backend-server -f ./docker/app/Dockerfile . | |
- name: Docker 이미지에 Tag 붙이기(이미지 이름은 ECR 레포지토리 주소랑 일치해야함) | |
run: docker tag cstar-backend-server ${{ steps.login-ecr.outputs.registry }}/cstar-backend-server:latest | |
- name: ECR에 Docker 이미지 Push하기 | |
run: docker push ${{ steps.login-ecr.outputs.registry }}/cstar-backend-server:latest | |
- name: SSH로 EC2에 접속하기 | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST }} | |
username: ${{ secrets.EC2_USERNAME }} | |
key: ${{ secrets.EC2_PRIVATE_KEY }} | |
script_stop: true | |
script: | | |
docker stop cstar-backend-container || true | |
docker rm cstar-backend-container || true | |
docker rmi ${{ steps.login-ecr.outputs.registry }}/cstar-backend-server:latest || true | |
docker pull ${{ steps.login-ecr.outputs.registry }}/cstar-backend-server:latest | |
docker run -d --name cstar-backend-container -p 80:8080 ${{ steps.login-ecr.outputs.registry }}/cstar-backend-server:latest |