Merge branch 'main' into develop #178
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: action-develop-cd | |
# 언제 이 파일의 내용이 실행될 것인지 정의 | |
on: | |
push: | |
branches: | |
- develop | |
# 코드의 내용을 이 파일을 실행하여 action을 수행하는 주체(Github Actions에서 사용하는 VM)가 읽을 수 있도록 권한을 설정 | |
permissions: | |
contents: read | |
# 실제 실행될 내용들을 정의합니다. | |
jobs: | |
build: | |
runs-on: ubuntu-latest # ubuntu 최신 버전에서 script를 실행 | |
steps: | |
# 지정한 저장소(현재 REPO)에서 코드를 워크플로우 환경으로 가져오도록 하는 github action | |
# submodule 을 사용하기 위한 설정을 추가 | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
token: ${{secrets.ACTION_TOKEN}} | |
submodules: true | |
# open jdk 17 버전 환경을 세팅 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: "corretto" | |
# 캐시를 사용하기위해 buildx 를 사용 | |
- name: Setup docker buildx | |
uses: docker/setup-buildx-action@v2 | |
# gradle을 통해 소스를 빌드. | |
- name: Build with gradle | |
run: | | |
chmod +x ./gradlew | |
./gradlew clean build -x test | |
# 설정 파일 서버(EC2)로 전달 | |
- name: Send docker-compose.yml and nginx.conf | |
uses: appleboy/scp-action@master | |
with: | |
username: ubuntu | |
host: ${{ secrets.KCS_HOST_DEV }} | |
key: ${{ secrets.KCS_KEY_DEV }} | |
source: "src/main/resources/backend-submodule,./nginx/nginx.conf" | |
target: "/home/ubuntu/" | |
# Docker hub 로그인 | |
- name: Login to dockerHub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME}} | |
password: ${{ secrets.DOCKER_TOKEN}} | |
# Docker Hub 에 Springboot 푸시 | |
- name: Build and push springboot | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./Dockerfile.dev | |
push: true | |
tags: ${{ secrets.DOCKER_REPOSITORY }}:latest | |
cache-from: type=gha | |
cache-to: type=gha, mode=max | |
# Discord 에 알람 보내기 | |
- name: Discord notification | |
env: | |
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
uses: Ilshidur/action-discord@master | |
with: | |
args: '{{ EVENT_PAYLOAD.repository.full_name }} 가 배포 되었 습니다. 개발 서버가 재시작 됩니다.' | |
# appleboy/ssh-action@master 액션을 사용하여 지정한 서버에 ssh로 접속하고, script를 실행합니다. | |
# 실행 시, docker-compose를 사용합니다. | |
# useranme : ubuntu 우분투 기반 ec2 일 경우 기본이름 | |
- name: Deploy to server | |
uses: appleboy/ssh-action@master | |
with: | |
username: ubuntu | |
host: ${{ secrets.KCS_HOST_DEV }} | |
key: ${{ secrets.KCS_KEY_DEV }} | |
script: | | |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} | |
sudo docker pull {{ secrets.DOCKER_REPOSITORY }}:latest | |
docker-compose -f docker-compose-dev.yml down | |
docker rmi $(docker images -q) | |
cp -f ./src/main/resources/backend-submodule/docker-compose-dev.yml . | |
docker-compose -f docker-compose-dev.yml up -d |