Skip to content

Merge pull request #61 from Gathering-Organization/revert-60-dev #74

Merge pull request #61 from Gathering-Organization/revert-60-dev

Merge pull request #61 from Gathering-Organization/revert-60-dev #74

Workflow file for this run

name: Deploy to Development Server
on:
push:
branches: [ "dev" ]
paths:
- "Gathering_be/**" # Gathering_be 디렉터리 내 파일 변경 시에만 실행
- ".github/workflows/**" # deploy 파일 변경 시에만 실행
workflow_dispatch:
env:
DOCKER_IMAGE: choibokeun/gathering
DOCKER_CONTAINER: gathering-app-dev
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x Gathering_be/gradlew
- name: Build with Gradle
run: cd Gathering_be && ./gradlew build -x test
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: ./Gathering_be # 경로를 명시적으로 작성
push: true
tags: |
${{ env.DOCKER_IMAGE }}:dev-latest
${{ env.DOCKER_IMAGE }}:dev-${{ github.sha }}
- name: Create .env.dev file
run: |
echo "IMAGE_TAG=dev-${{ github.sha }}" > Gathering_be/.env.dev
echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> Gathering_be/.env.dev
echo "SPRING_REDIS_HOST=${{ secrets.SPRING_REDIS_HOST }}" >> Gathering_be/.env.dev
echo "SPRING_REDIS_PORT=${{ secrets.SPRING_REDIS_PORT }}" >> Gathering_be/.env.dev
echo "SWAGGER_USERNAME=${{ secrets.SWAGGER_USERNAME }}" >> Gathering_be/.env.dev
echo "SWAGGER_PASSWORD=${{ secrets.SWAGGER_PASSWORD }}" >> Gathering_be/.env.dev
echo "CORS_ALLOWED_ORIGINS=${{ secrets.DEV_CORS_ALLOWED_ORIGINS }}" >> Gathering_be/.env.dev
echo "GOOGLE_RESOURCE_URI= ${{ secrets.GOOGLE_RESOURCE_URI }}" >> Gathering_be/.env.dev
echo "AWS_ACCESS_KEY=${{ secrets.AWS_ACCESS_KEY }}" >> Gathering_be/.env.dev
echo "AWS_SECRET_KEY=${{ secrets.AWS_SECRET_KEY }}" >> Gathering_be/.env.dev
echo "GATHERING_GMAIL_USERNAME=${{ secrets.GATHERING_GMAIL_USERNAME }}" >> Gathering_be/.env.dev
echo "GATHERING_GMAIL_PASSWORD=${{ secrets.GATHERING_GMAIL_PASSWORD }}" >> Gathering_be/.env.dev
- name: Copy files to EC2
uses: appleboy/scp-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_SSH_KEY }}
source: "Gathering_be/.env.dev,Gathering_be/docker-compose.dev.yml"
target: "~/"
- name: Deploy to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_SSH_KEY }}
script: |
docker-compose -f Gathering_be/docker-compose.dev.yml --env-file Gathering_be/.env.dev down || true
docker-compose -f Gathering_be/docker-compose.dev.yml --env-file Gathering_be/.env.dev pull
docker-compose -f Gathering_be/docker-compose.dev.yml --env-file Gathering_be/.env.dev up -d
docker system prune -af