fix(be) #640: 테스트 코드 버그는 Redis가 서버에 띄워져있지 않아 발생했던 문제였음 #97
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: be-cd | |
on: | |
push: | |
branches: | |
- release | |
paths: | |
- 'be/**' | |
env: | |
ROOT_PATH: ${{ github.workspace }}/be | |
MAIN_RESOURCE_PATH: ${{ github.workspace }}/be/src/main/resources | |
TEST_RESOURCE_PATH: ${{ github.workspace }}/be/src/test/resources | |
jobs: | |
be-cd: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 레포지토리를 체크아웃한다 | |
uses: actions/checkout@v4 | |
- name: 자바를 설치한다 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'corretto' | |
java-version: '11' | |
- name: 설정파일을 추가한다 | |
run: | | |
cd ${{ env.MAIN_RESOURCE_PATH }} | |
echo "${{ secrets.APPLICATION_AWS_YML }}" > application-aws.yml | |
echo "${{ secrets.APPLICATION_JWT_YML }}" > application-jwt.yml | |
echo "${{ secrets.APPLICATION_OAUTH_YML }}" > application-oauth.yml | |
- name: 어플리케이션을 빌드한다 | |
run: | | |
chmod +x gradlew | |
./gradlew build | |
working-directory: ${{ env.ROOT_PATH }} | |
- name: 도커 허브에 로그인한다 | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_PASSWORD }} | |
- name: 어플리케이션의 도커 이미지를 빌드하고 도커 허브에 푸시한다 | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./Dockerfile.be | |
push: true | |
tags: ${{ secrets.BE_DOCKER_IMAGE_NAME }} | |
- name: 어플리케이션을 배포한다 | |
env: | |
PRIVATE_KEY: ${{ secrets.EC2_SSH_PRIVATE_KEY }} | |
HOST: ${{ secrets.HOST_ADDRESS }} | |
USER: ${{ secrets.HOST_USERNAME }} | |
TAG: ${{ secrets.BE_DOCKER_IMAGE_NAME }} | |
run: | | |
# Private key를 파일로 생성합니다. | |
echo "$PRIVATE_KEY" > private_key.pem | |
chmod 600 private_key.pem | |
# EC2 인스턴스에 SSH로 접속하여 Docker 컨테이너를 관리합니다. | |
ssh -o StrictHostKeyChecking=no -i private_key.pem $USER@$HOST " | |
sudo docker compose -f docker-compose-be-app.yml down -v | |
sudo docker compose -f docker-compose-be-app.yml pull | |
sudo docker compose -f docker-compose-be-app.yml up -d | |
sudo docker image prune -f | |
" |