[feat] 배포 자동화 환경 구축 #5
Workflow file for this run
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: CD | |
on: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
backend-deploy: | |
runs-on: ubuntu-latest | |
steps: | |
# SOURCE 단계 - 저장소 checkout | |
- name: Checkout-source code | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.ACCESS_TOKEN_FOR_GITHUB_ACTIONS }} | |
submodules: true | |
# JDK 설치 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '11' | |
distribution: 'temurin' | |
# Gradle 실행권한 부여 | |
- name: Grant execute permission to gradlew | |
run: chmod +x ./gradlew | |
# Spring boot application 빌드 | |
- name: Build with gradle | |
run: ./gradlew -x test clean build | |
# docker image 빌드 | |
- name: Build docker image | |
run: docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/app . | |
# docker hub 로그인 | |
- name: Login docker hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
# docker hub 퍼블리시 | |
- name: Publish to docker hub | |
run: docker push ${{ secrets.DOCKER_HUB_USERNAME }}/app | |
# WAS 인스턴스 접속 & 애플리케이션 실행 | |
- name: Connect to WAS & Execute Application | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.WAS_HOST }} | |
username: ${{ secrets.WAS_USERNAME }} | |
key: ${{ secrets.SSH_KEY }} | |
port: 22 | |
script: | | |
docker stop $(docker ps -a -q) | |
docker rm $(docker ps -a -q) | |
docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/app | |
docker run -d -p 8080:8080 --name app ${{ secrets.DOCKER_HUB_USERNAME }}/app |