Skip to content

chore: 백엔드 배포 테스트 #9

chore: 백엔드 배포 테스트

chore: 백엔드 배포 테스트 #9

Workflow file for this run

name: 배포
on:
push:
branches:
- develop
pull_request:
branches:
- main
- develop
jobs:
deploy:
runs-on: ubuntu-latest # 작업이 실행될 환경
defaults:
run:
working-directory: backend
steps:
- name: 체크아웃
uses: actions/checkout@v3
- name: JDK 17 사용
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'
- name: Gradle Wrapper 실행 권한 추가
run: chmod +x gradlew
- name: Gradle로 빌드(CI)
run: ./gradlew build
- name: 도커허브에 로그인
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER_NAME }}
password: ${{ secrets.DOCKER_USER_PW }}
- name: 이미지 빌드
run: docker buildx build --platform linux/amd64 -f Dockerfile.prod -t ${{ secrets.DOCKER_USER_NAME }}/${{ secrets.DOCKER_IMAGE_NAME }}-be:latest .
- name: 도커허브에 이미지 푸시
run: docker push ${{ secrets.DOCKER_USER_NAME }}/${{ secrets.DOCKER_IMAGE_NAME }}-be:latest
- name: AWS EC2에 ssh 접속 후 배포
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.AWS_IP }}
port: 22
username: ubuntu
key: ${{ secrets.AWS_KEY }}
script: |
sudo docker rm -f $(docker ps -qa)
docker pull ${{ secrets.DOCKER_USER_NAME }}/${{ secrets.DOCKER_IMAGE_NAME }}-be:latest
docker-compose --env-file .env.production up -d
docker image prune -f