Skip to content

Commit

Permalink
Merge pull request #17 from Soongsil-CoffeeChat/feat/#16
Browse files Browse the repository at this point in the history
feat: cicd-pipeline
  • Loading branch information
KimKyoHwee authored May 20, 2024
2 parents 2c94b20 + 67be18a commit 158ada4
Showing 1 changed file with 28 additions and 5 deletions.
33 changes: 28 additions & 5 deletions .github/workflows/cogo_cicd_gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Java CI with Gradle

on:
push:
branches: [ "main" ]
branches: ["main"]
pull_request:
branches: [ "main" ]
branches: ["main"]

permissions:
contents: read
Expand All @@ -13,53 +13,76 @@ jobs:
build-docker-image:
runs-on: ubuntu-latest
steps:
# 리포지토리 체크아웃
- name: Checkout repository
uses: actions/checkout@v3

# JDK 17 설정
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

# Convert line endings to Unix format
# 줄 끝 형식을 Unix 형식으로 변환
- name: Convert line endings to Unix
run: |
sudo apt-get install dos2unix
dos2unix ./gradlew
# gradlew에 실행 권한 부여
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew

# Gradle을 사용하여 Spring Boot 애플리케이션 빌드
- name: Build with Gradle
run: ./gradlew clean bootJar

# Docker 이미지를 빌드
- name: Docker image build
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/cogoserver .

# Docker Hub에 로그인
- name: Docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

# Docker 이미지를 Docker Hub에 푸시
- name: Docker Hub push
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/cogoserver

run-docker-image-on-ec2:
needs: build-docker-image
runs-on: self-hosted
steps:
# Docker 이미지를 EC2에서 pull
- name: Docker pull
run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/cogoserver

# 기존 cogo 컨테이너 중지
- name: Docker stop container
run: sudo docker stop $(sudo docker ps -q) 2>/dev/null || true
run: sudo docker stop cogo 2>/dev/null || true

# 기존 cogo 컨테이너 삭제
- name: Docker remove container
run: sudo docker rm cogo 2>/dev/null || true

# 새 컨테이너 실행
- name: Docker run new container
run: sudo docker run --name github-actions-demo --rm -d -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/cogoserver
run: |
sudo docker run --name cogo --rm -d -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/cogoserver
sleep 5 # 컨테이너 실행 시간을 확보
sudo docker ps -a # 모든 컨테이너 목록 출력
# 실행된 컨테이너의 로그 확인
- name: Check Docker logs
run: sudo docker logs cogo || true # 컨테이너 로그 출력

# 미사용 Docker 이미지 삭제
- name: Delete old docker image
run: sudo docker system prune -f



0 comments on commit 158ada4

Please sign in to comment.