Skip to content

Update ci-cd.yml

Update ci-cd.yml #7

Workflow file for this run

# New instance3
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# Checkout the code
- name: Checkout code
uses: actions/checkout@v3
# Log in to Docker Hub
- name: Log in to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
# Build and Push Docker Image
- name: Build and Push Docker Image
working-directory: ./
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/bookmile-app:latest .
docker push ${{ secrets.DOCKER_USERNAME }}/bookmile-app:latest
# .env 파일 생성
- name: Create .env File
run: |
echo "SPRING_DATASOURCE_URL=${{ secrets.SPRING_DATASOURCE_URL }}" >> ./.env
echo "MYSQL_ROOT_PASSWORD=${{ secrets.MYSQL_ROOT_PASSWORD }}" >> ./.env
echo "MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }}" >> ./.env
echo "MYSQL_USER=${{ secrets.MYSQL_USER }}" >> ./.env
echo "MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }}" >> ./.env
echo "JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}" >> ./.env
echo "REDIS_HOST=${{ secrets.REDIS_HOST }}" >> ./.env
echo "REDIS_PORT=${{ secrets.REDIS_PORT }}" >> ./.env
echo "AWS_ACCESS_KEY=${{ secrets.AWS_ACCESS_KEY }}" >> ./.env
echo "AWS_SECRET_KEY=${{ secrets.AWS_SECRET_KEY }}" >> ./.env
echo "AWS_BUCKET_FOLDER=${{ secrets.AWS_BUCKET_FOLDER }}" >> ./.env
echo "AWS_BUCKET_PROFILE_FOLDER=${{ secrets.AWS_BUCKET_PROFILE_FOLDER }}" >> ./.env
echo "AWS_BUCKET_MAIN_PROFILE=${{ secrets.AWS_BUCKET_MAIN_PROFILE }}" >> ./.env
# .env 내용
- name: reading env file
run: |
cat ./.env
ls ./
# Transfer Docker Compose File to EC2
- name: Transfer Docker Compose to EC2
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_KEY }}
source: |
./
target: ~/backend/
# Deploy to EC2
- name: Deploy to EC2
uses: appleboy/ssh-action@v1.2.0
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_KEY }}
debug: true
script: |
# Docker 이미지 업데이트 및 애플리케이션 실행
cd ~/backend
docker pull ${{ secrets.DOCKER_USERNAME }}/bookmile-app:latest
chmod 644 .env
docker-compose down
docker-compose up --build -d