Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 60 additions & 60 deletions .github/workflows/cd_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,63 +55,63 @@ jobs:
############################################################
# Push 단계 : Docker build + Deploy 수행
############################################################
build-and-deploy:
if: github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
env:
TZ: 'Asia/Seoul'

steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Generate application.yml files
run: |
mkdir -p ./src/main/resources ./src/test/resources
echo "${{ secrets.APPLICATION_DEV }}" > ./src/main/resources/application.yml
echo "${{ secrets.APPLICATION_TEST }}" > ./src/test/resources/application.yml

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

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

- name: Build Docker image
run: docker build . -f Dockerfile -t $IMAGE_NAME

- name: Docker Login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}

- name: Push Docker image
run: docker push $IMAGE_NAME

- name: Deploy to AWS EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST_DEV }}
username: ${{ secrets.EC2_USERNAME_DEV }}
key: ${{ secrets.EC2_KEY_DEV }}
port: 22
script: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_HUB_TOKEN }}
docker stop udt_dev_server firefly-redis node-exporter mysql-exporter || true
docker rm udt_dev_server firefly-redis node-exporter mysql-exporter || true
cd ~/udt
docker pull ${{ secrets.DOCKER_USERNAME }}/udt-dev:latest
docker-compose pull
docker-compose up -d
sleep 10
docker ps
# build-and-deploy:
# if: github.event_name == 'push'
# runs-on: ubuntu-latest
# permissions:
# contents: read
# pull-requests: write
# env:
# TZ: 'Asia/Seoul'
#
# steps:
# - uses: actions/checkout@v4
#
# - name: Set up JDK 17
# uses: actions/setup-java@v4
# with:
# java-version: '17'
# distribution: 'temurin'
#
# - name: Generate application.yml files
# run: |
# mkdir -p ./src/main/resources ./src/test/resources
# echo "${{ secrets.APPLICATION_DEV }}" > ./src/main/resources/application.yml
# echo "${{ secrets.APPLICATION_TEST }}" > ./src/test/resources/application.yml
#
# - name: Grant execute permission for gradlew
# run: chmod +x gradlew
#
# - name: Build with Gradle
# run: ./gradlew clean build
#
# - name: Build Docker image
# run: docker build . -f Dockerfile -t $IMAGE_NAME
#
# - name: Docker Login
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_TOKEN }}
#
# - name: Push Docker image
# run: docker push $IMAGE_NAME
#
# - name: Deploy to AWS EC2
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.EC2_HOST_DEV }}
# username: ${{ secrets.EC2_USERNAME_DEV }}
# key: ${{ secrets.EC2_KEY_DEV }}
# port: 22
# script: |
# docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_HUB_TOKEN }}
# docker stop udt_dev_server firefly-redis node-exporter mysql-exporter || true
# docker rm udt_dev_server firefly-redis node-exporter mysql-exporter || true
# cd ~/udt
# docker pull ${{ secrets.DOCKER_USERNAME }}/udt-dev:latest
# docker-compose pull
# docker-compose up -d
#
# sleep 10
# docker ps
124 changes: 62 additions & 62 deletions .github/workflows/cd_prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,65 +55,65 @@ jobs:
############################################################
# Push 단계 : Docker build + Deploy 수행
############################################################
build-and-deploy:
if: github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
env:
TZ: 'Asia/Seoul'

steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Generate application.yml files
run: |
mkdir -p ./src/main/resources ./src/test/resources
echo "${{ secrets.APPLICATION_PROD }}" > ./src/main/resources/application.yml
echo "${{ secrets.APPLICATION_TEST }}" > ./src/test/resources/application.yml

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

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

- name: Build Docker image
run: docker build . -f Dockerfile -t $IMAGE_NAME

- name: Docker Login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}

- name: Push Docker image
run: docker push $IMAGE_NAME

- name: Deploy to AWS EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST_PROD }}
username: ${{ secrets.EC2_USERNAME_PROD }}
key: ${{ secrets.EC2_KEY_PROD }}
port: 22

proxy_host: ${{ secrets.BASTION_HOST }}
proxy_username: ${{ secrets.BASTION_USER }}
proxy_key: ${{ secrets.BASTION_KEY }}

script: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_HUB_TOKEN }}
docker stop udt_prod_server node-exporter mysql-exporter || true
docker rm udt_prod_server node-exporter mysql-exporter || true
cd ~/udt
docker pull ${{ secrets.DOCKER_USERNAME }}/udt-prod:latest
docker-compose pull
docker-compose up -d --force-recreate
# build-and-deploy:
# if: github.event_name == 'push'
# runs-on: ubuntu-latest
# permissions:
# contents: read
# pull-requests: write
# env:
# TZ: 'Asia/Seoul'
#
# steps:
# - uses: actions/checkout@v4
#
# - name: Set up JDK 17
# uses: actions/setup-java@v4
# with:
# java-version: '17'
# distribution: 'temurin'
#
# - name: Generate application.yml files
# run: |
# mkdir -p ./src/main/resources ./src/test/resources
# echo "${{ secrets.APPLICATION_PROD }}" > ./src/main/resources/application.yml
# echo "${{ secrets.APPLICATION_TEST }}" > ./src/test/resources/application.yml
#
# - name: Grant execute permission for gradlew
# run: chmod +x gradlew
#
# - name: Build with Gradle
# run: ./gradlew clean build
#
# - name: Build Docker image
# run: docker build . -f Dockerfile -t $IMAGE_NAME
#
# - name: Docker Login
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_TOKEN }}
#
# - name: Push Docker image
# run: docker push $IMAGE_NAME
#
# - name: Deploy to AWS EC2
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.EC2_HOST_PROD }}
# username: ${{ secrets.EC2_USERNAME_PROD }}
# key: ${{ secrets.EC2_KEY_PROD }}
# port: 22
#
# proxy_host: ${{ secrets.BASTION_HOST }}
# proxy_username: ${{ secrets.BASTION_USER }}
# proxy_key: ${{ secrets.BASTION_KEY }}
#
# script: |
# docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_HUB_TOKEN }}
# docker stop udt_prod_server node-exporter mysql-exporter || true
# docker rm udt_prod_server node-exporter mysql-exporter || true
# cd ~/udt
# docker pull ${{ secrets.DOCKER_USERNAME }}/udt-prod:latest
# docker-compose pull
# docker-compose up -d --force-recreate