Skip to content

Conversation

@dahyun24
Copy link
Collaborator

@dahyun24 dahyun24 commented Apr 2, 2025

해당 사항 (중복 선택)

  • FEAT : 새로운 기능 추가 및 개선
  • FIX : 기존 기능 수정 및 정상 동작을 위한 간단한 추가, 수정사항
  • BUG : 버그 수정
  • REFACTOR : 결과의 변경 없이 코드의 구조를 재조정
  • TEST : 테스트 코드 추가
  • DOCS : 코드가 아닌 문서를 수정한 경우
  • REMOVE : 파일을 삭제하는 작업만 수행
  • RENAME : 파일 또는 폴더명을 수정하거나 위치(경로)를 변경
  • ETC : 이외에 다른 경우 - 어떠한 사항인지 작성해주세요.

설명

  • 메인 서버의 ci 파일 추가

🔗 관련 이슈

해결한 이슈: closed #263

📝 작업 내용

  • main-server의 Docker 이미지 빌드를 위한 GitHub Actions CI 워크플로우 추가
  • be-main/dev 및 하위 브랜치에서 push 또는 PR 발생 시 CI 작동
  • 빌드된 이미지는 Docker Hub 계정 kickzo에 main-server:latest 태그로 업로드
  • GitHub Secrets를 통해 Docker Hub 로그인 정보 관리
    • DOCKERHUB_USERNAME
    • DOCKERHUB_TOKEN

📸 스크린샷(optional)

  • DockerHub에 성공적으로 메인 서버의 이미지가 업로드 됨

스크린샷 2025-04-01 031157
  • test 브랜치를 통해 CI 파일 테스트 결과

CI파일테스트결과

@dahyun24 dahyun24 self-assigned this Apr 2, 2025
@dahyun24 dahyun24 added FEAT 새로운 기능 추가 및 개선 infra 인프라 작업 labels Apr 2, 2025
@dahyun24
Copy link
Collaborator Author

문제 : CI 속도가 너무 느림
=> 현재 워크플로가 Docker 캐시와 Gradle 캐시 없이 매번 새로 빌드하고 푸시하기 때문에 시간이 오래 걸리는 구조
해결

  • Docker buildx + GitHub Actions 캐시 사용
  • Gradle 캐시 자동 적용
코드 보기
name: CI for Main Server

on:
  push:
    branches:
      - be-main/dev
      - be-main/dev/**
  pull_request:
    branches:
      - be-main/dev
      - be-main/dev/**

jobs:
  build-and-push:
    runs-on: ubuntu-latest

    env:
      SERVER_NAME: main
      DOCKERFILE_DIR: src/backend/main-server/main

    steps:
      - name: Checkout repo
        uses: actions/checkout@v3

      - name: Set up JDK 21
        uses: actions/setup-java@v3
        with:
          java-version: 21
          distribution: 'temurin'
          cache: gradle

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3 

      - name: Login to DockerHub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Build and Push Docker image with Cache
        uses: docker/build-push-action@v5
        with:
          context: ${{ env.DOCKERFILE_DIR }}
          file: ${{ env.DOCKERFILE_DIR }}/Dockerfile
          push: true
          tags: ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.SERVER_NAME }}:latest
          cache-from: type=gha
          cache-to: type=gha,mode=max

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FEAT 새로운 기능 추가 및 개선 infra 인프라 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[INFRA] FEAT: 메인서버 CI 파일 추가

2 participants