Skip to content

Commit

Permalink
Merge pull request #461 from Clubber2024/dev
Browse files Browse the repository at this point in the history
서버 배포 분리 작업 운영 서버 적용
  • Loading branch information
mjKim1229 authored Oct 14, 2024
2 parents ab12d3e + b314b56 commit 6b01599
Show file tree
Hide file tree
Showing 39 changed files with 684 additions and 337 deletions.
88 changes: 88 additions & 0 deletions .github/workflows/ci-cd-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#name: CI-CD Dev
#
#on:
# push:
# branches:
# - dev
#
#jobs:
# CI-CD:
# 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'
#
# - name: make application.yml
# run: |
# cd ./src/main/resources
# touch ./application.yml
# echo "${{ secrets.YML }}" > ./application.yml
# shell: bash
#
# - name: make application-dev.yml
# run: |
# cd ./src/main/resources
# touch ./application-dev.yml
# echo "${{ secrets.YML_DEV }}" > ./application-dev.yml
# shell: bash
#
# - name: Gradle Caching
# uses: actions/cache@v3
# with:
# path: |
# ~/.gradle/caches
# ~/.gradle/wrapper
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-gradle-
#
# - name: Grant execute permission for gradlew
# run: chmod +x gradlew
#
# - name: Build with Gradle
# run: ./gradlew clean build -x test
#
# - name: docker build and push
# run: |
# docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
# docker build -t ${{ secrets.DOCKER_REPO }}/clubber-backend-dev .
# docker push ${{ secrets.DOCKER_REPO }}/clubber-backend-dev
#
# - name: Copy docker-compose.yml to EC2
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.HOST_DEV }}
# username: ubuntu
# key: ${{ secrets.PRIVATE_KEY_DEV }}
# source: ./docker-compose.yml
# target: /home/ubuntu
#
#
# - name: Deploy to dev
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.HOST_DEV }}
# username: ubuntu
# key: ${{ secrets.PRIVATE_KEY_DEV }}
# script: |
# cd /home/ubuntu
# sudo docker rm -f $(docker ps -qa)
# sudo docker pull ${{ secrets.DOCKER_REPO }}/clubber-backend-dev
# sudo docker pull ${{ secrets.DOCKER_REPO }}/clubber-front
# sudo docker-compose up -d
# sudo docker image prune -f
#
#
#
#
#
#
#
#
#
#
#
104 changes: 104 additions & 0 deletions .github/workflows/ci-cd-prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
##name: CI-CD Main
##
##on:
## push:
## branches:
## - main
##
##jobs:
## CI-CD:
## 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'
##
## - name: make application.yml
## run: |
## cd ./src/main/resources
## touch ./application.yml
## echo "${{ secrets.YML }}" > ./application.yml
## shell: bash
##
## - name: make application-prod.yml
## run: |
## cd ./src/main/resources
## touch ./application-prod.yml
## echo "${{ secrets.YML_PROD }}" > ./application-prod.yml
## shell: bash
##
## - name: Gradle Caching
## uses: actions/cache@v3
## with:
## path: |
## ~/.gradle/caches
## ~/.gradle/wrapper
## key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
## restore-keys: |
## ${{ runner.os }}-gradle-
##
## - name: Grant execute permission for gradlew
## run: chmod +x gradlew
##
## - name: Build with Gradle
## run: ./gradlew clean build -x test
##
## - name: Docker Hub Login
## uses: docker/login-action@v2
## with:
## username: ${{ secrets.DOCKER_USERNAME }}
## password: ${{ secrets.DOCKER_PASSWORD }}
##
## - name: Docker build & push to prod
## run: |
## docker build -f Dockerfile -t ${{ secrets.DOCKER_REPO }} .
## docker push ${{ secrets.DOCKER_REPO }}
##
## - name: Copy docker-compose.yml to EC2
## uses: appleboy/scp-action@master
## with:
## host: ${{ secrets.HOST_PROD }}
## username: ubuntu
## key: ${{ secrets.PRIVATE_KEY }}
## source: ./docker-compose.yml
## target: /home/ubuntu
##
#<<<<<<< HEAD
##<<<<<<< HEAD:.github/workflows/ci-cd-prod.yml
##=======
##
##>>>>>>> ab12d3e1dc94b1b0b11fe199be0ceac1ac41aea5:.github/workflows/ci-main.yml
#=======
#>>>>>>> d1f3539ec5df7a6051010d084d30c2198cfbe2dd
## - name: Deploy to prod
## uses: appleboy/ssh-action@master
## with:
## host: ${{ secrets.HOST_PROD }}
## username: ubuntu
## key: ${{ secrets.PRIVATE_KEY }}
## script: |
## cd /home/ubuntu
#<<<<<<< HEAD
## sudo docker rm -f $(docker ps -qa)
## sudo docker pull ${{ secrets.DOCKER_REPO }}
## sudo docker pull mjkim1229/clubber-client
#=======
## sudo docker-compose down
## sudo docker-compose pull ${{ secrets.DOCKER_REPO }}
#>>>>>>> d1f3539ec5df7a6051010d084d30c2198cfbe2dd
## sudo docker-compose up -d
## sudo docker image prune -f
##
##
##
##
##
##
##
##
##
##
##
122 changes: 122 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: CI-CD

on:
push:
branches: [ "main", "dev"]

jobs:
CI-CD:
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'

- name: Gradle Caching
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: make application.yml
if: contains(github.ref, 'main') || contains(github.ref, 'dev')
run: |
cd ./src/main/resources
touch ./application.yml
echo "${{ secrets.YML }}" > ./application.yml
shell: bash

- name: make application-dev.yml
if: contains(github.ref, 'dev')
run: |
cd ./src/main/resources
touch ./application-dev.yml
echo "${{ secrets.YML_DEV }}" > ./application-dev.yml
shell: bash

- name: make application-prod.yml
if: contains(github.ref, 'main')
run: |
cd ./src/main/resources
touch ./application-prod.yml
echo "${{ secrets.YML_PROD }}" > ./application-prod.yml
shell: bash

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew clean build -x test


- name: docker build and push to dev
if: contains(github.ref, 'dev')
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -f Dockerfile.dev -t ${{ secrets.DOCKER_REPO }}/clubber-backend-dev .
docker push ${{ secrets.DOCKER_REPO }}/clubber-backend-dev
- name: docker build and push to prod
if: contains(github.ref, 'main')
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -f Dockerfile.prod -t ${{ secrets.DOCKER_REPO }}/clubber-backend-prod .
docker push ${{ secrets.DOCKER_REPO }}/clubber-backend-prod
- name: Copy docker-compose.yml to EC2 DEV
if: contains(github.ref, 'dev')
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST_DEV }}
username: ubuntu
key: ${{ secrets.PRIVATE_KEY_DEV }}
source: ./docker-compose-dev.yml
target: /home/ubuntu

- name: Copy docker-compose.yml to EC2 PROD
if: contains(github.ref, 'main')
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST_PROD }}
username: ubuntu
key: ${{ secrets.PRIVATE_KEY }}
source: ./docker-compose-prod.yml
target: /home/ubuntu

- name: Deploy to dev
if: contains(github.ref, 'dev')
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST_DEV }}
username: ubuntu
key: ${{ secrets.PRIVATE_KEY_DEV }}
script: |
cd /home/ubuntu
sudo docker rm -f $(docker ps -qa)
sudo docker pull ${{ secrets.DOCKER_REPO }}/clubber-backend-dev
sudo docker pull ${{ secrets.DOCKER_REPO }}/clubber-front-dev
sudo docker-compose -f docker-compose-dev.yml up -d
sudo docker image prune -f
- name: Deploy to prod
if: contains(github.ref, 'main')
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST_PROD }}
username: ubuntu
key: ${{ secrets.PRIVATE_KEY }}
script: |
cd /home/ubuntu
sudo docker rm -f $(docker ps -qa)
sudo docker pull ${{ secrets.DOCKER_REPO }}/clubber-backend-prod
sudo docker pull ${{ secrets.DOCKER_REPO }}/clubber-front-prod
sudo docker-compose -f docker-compose-prod.yml up -d
sudo docker image prune -f
Loading

0 comments on commit 6b01599

Please sign in to comment.