diff --git a/.github/workflows/PROJECT-PYTHON-CI.yaml b/.github/workflows/PROJECT-PYTHON-CI.yaml new file mode 100644 index 0000000..8d89bc6 --- /dev/null +++ b/.github/workflows/PROJECT-PYTHON-CI.yaml @@ -0,0 +1,81 @@ +# =================================================================== +# Python FastAPI 빌드 검증 워크플로우 (CI Only) +# =================================================================== +# +# 설명: +# - main 브랜치에 push 시 Docker 빌드가 정상적으로 되는지만 검증 +# - 배포는 수행하지 않음 (deploy 브랜치에서만 배포) +# +# =================================================================== + +name: PROJECT-PYTHON-CI + +# =================================================================== +# 트리거 설정 +# =================================================================== +on: + push: + branches: + - main # main 브랜치 push 시 빌드 검증 + pull_request: + branches: + - main # main 브랜치로의 PR 시 빌드 검증 + workflow_dispatch: # 수동 실행 허용 + +# =================================================================== +# 환경 변수 설정 +# =================================================================== +env: + # 🔧 프로젝트 설정 + PROJECT_NAME: "mapsee-ai" + + # 🐍 Python 설정 + PYTHON_VERSION: "3.13" + +jobs: + # =================================================================== + # 빌드 검증 작업 + # =================================================================== + build-check: + name: Python FastAPI 빌드 검증 + runs-on: ubuntu-latest + + steps: + # 1. 소스코드 체크아웃 + - name: 코드 체크아웃 + uses: actions/checkout@v4 + + # 2. .env 파일 생성 (빌드 검증용) + - name: .env 파일 생성 + run: | + cat > .env << 'EOF' + ${{ secrets.ENV_FILE }} + EOF + echo "✅ .env 파일이 생성되었습니다" + + # 3. Docker 빌드 환경 설정 + - name: Docker 빌드환경 설정 + uses: docker/setup-buildx-action@v3 + + # 4. Docker 이미지 빌드 (push 없이 검증만) + - name: Docker 이미지 빌드 검증 + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: false # 푸시하지 않음 (빌드 검증만) + tags: ${{ env.PROJECT_NAME }}:build-check + # GitHub Actions 캐시 사용 + cache-from: type=gha + cache-to: type=gha,mode=max + + # 5. 빌드 성공 메시지 + - name: 빌드 검증 완료 + run: | + echo "✅ Docker 빌드 검증이 성공적으로 완료되었습니다!" + echo "" + echo "📋 빌드 정보:" + echo " 🎯 프로젝트: ${{ env.PROJECT_NAME }}" + echo " 🌿 브랜치: ${{ github.ref_name }}" + echo " 📝 커밋: ${{ github.sha }}" + echo " ⏰ 검증 시간: $(date '+%Y-%m-%d %H:%M:%S')" diff --git a/.github/workflows/PROJECT-PYTHON-CICD.yaml b/.github/workflows/PROJECT-PYTHON-CICD.yaml index 055ddb4..c0389ae 100644 --- a/.github/workflows/PROJECT-PYTHON-CICD.yaml +++ b/.github/workflows/PROJECT-PYTHON-CICD.yaml @@ -20,7 +20,7 @@ name: PROJECT-PYTHON-CICD # │ SERVER_HOST │ 배포 대상 서버 IP/도메인 │ # │ SERVER_USER │ 서버 SSH 접속 사용자명 │ # │ SERVER_PASSWORD │ 서버 SSH 접속 비밀번호 │ -# │ ENV │ .env 파일 전체 내용 │ +# │ ENV_FILE │ .env 파일 전체 내용 │ # └─────────────────────────────┴────────────────────────────────────┘ # # 🧪 선택적 Secrets (test 브랜치 사용시에만): @@ -86,7 +86,7 @@ jobs: - name: .env 파일 생성 run: | cat > .env << 'EOF' - ${{ secrets.ENV }} + ${{ secrets.ENV_FILE }} EOF echo "✅ .env 파일이 생성되었습니다" diff --git a/CHANGELOG.json b/CHANGELOG.json index f43a69b..147f811 100644 --- a/CHANGELOG.json +++ b/CHANGELOG.json @@ -1,11 +1,35 @@ { "metadata": { - "lastUpdated": "2026-01-11T15:07:27Z", - "currentVersion": "0.0.11", + "lastUpdated": "2026-01-11T15:34:03Z", + "currentVersion": "0.1.1", "projectType": "python", - "totalReleases": 1 + "totalReleases": 2 }, "releases": [ + { + "version": "0.1.1", + "project_type": "python", + "date": "2026-01-11", + "pr_number": 8, + "raw_summary": "## Summary by CodeRabbit\n\n* **Documentation**\n * README의 최신 버전 정보를 v0.1.1로 반영하여 업데이트\n\n* **Chores**\n * 애플리케이션 버전을 0.1.1로 업그레이드하고 버전 메타데이터 갱신\n * main 브랜치의 푸시 및 풀 요청에 대해 Python FastAPI Docker 빌드를 자동으로 검증하는 CI 워크플로우 추가\n * Docker 이미지에서 Playwright Chromium 브라우저와 필수 시스템 의존성을 지원하도록 설정", + "parsed_changes": { + "documentation": { + "title": "Documentation", + "items": [ + "README의 최신 버전 정보를 v0.1.1로 반영하여 업데이트" + ] + }, + "chores": { + "title": "Chores", + "items": [ + "애플리케이션 버전을 0.1.1로 업그레이드하고 버전 메타데이터 갱신", + "main 브랜치의 푸시 및 풀 요청에 대해 Python FastAPI Docker 빌드를 자동으로 검증하는 CI 워크플로우 추가", + "Docker 이미지에서 Playwright Chromium 브라우저와 필수 시스템 의존성을 지원하도록 설정" + ] + } + }, + "parse_method": "markdown" + }, { "version": "0.0.11", "project_type": "python", diff --git a/CHANGELOG.md b/CHANGELOG.md index 66559cd..1a11ce9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,21 @@ # Changelog -**현재 버전:** 0.0.11 -**마지막 업데이트:** 2026-01-11T15:07:27Z +**현재 버전:** 0.1.1 +**마지막 업데이트:** 2026-01-11T15:34:03Z + +--- + +## [0.1.1] - 2026-01-11 + +**PR:** #8 + +**Documentation** +- README의 최신 버전 정보를 v0.1.1로 반영하여 업데이트 + +**Chores** +- 애플리케이션 버전을 0.1.1로 업그레이드하고 버전 메타데이터 갱신 +- main 브랜치의 푸시 및 풀 요청에 대해 Python FastAPI Docker 빌드를 자동으로 검증하는 CI 워크플로우 추가 +- Docker 이미지에서 Playwright Chromium 브라우저와 필수 시스템 의존성을 지원하도록 설정 --- diff --git a/Dockerfile b/Dockerfile index 0c72cc8..81cb1c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,13 @@ # 설명: # - FastAPI 애플리케이션을 위한 멀티 스테이지 Dockerfile # - faster-whisper를 위한 ffmpeg 설치 포함 +# - Playwright 브라우저 (Chromium) 설치 포함 # - uv를 사용한 빠른 의존성 설치 # # 빌드 구조: # - Python 3.13 기반 # - ffmpeg 및 시스템 의존성 설치 +# - Playwright Chromium 브라우저 설치 # - uv를 통한 패키지 관리 # # =================================================================== @@ -22,9 +24,26 @@ WORKDIR /app # 시스템 의존성 설치 # - ffmpeg: faster-whisper의 오디오 처리를 위해 필요 # - curl: 헬스체크 및 다운로드용 +# - Playwright Chromium 실행에 필요한 시스템 라이브러리 RUN apt-get update && apt-get install -y \ ffmpeg \ curl \ + # Playwright Chromium 의존성 + libnss3 \ + libnspr4 \ + libatk1.0-0 \ + libatk-bridge2.0-0 \ + libcups2 \ + libdrm2 \ + libxkbcommon0 \ + libxcomposite1 \ + libxdamage1 \ + libxfixes3 \ + libxrandr2 \ + libgbm1 \ + libasound2 \ + libpango-1.0-0 \ + libcairo2 \ && rm -rf /var/lib/apt/lists/* # uv 설치 (빠른 Python 패키지 매니저) @@ -39,6 +58,9 @@ COPY .env ./ # uv를 사용하여 빠르게 설치 RUN uv pip install --system --no-cache . +# Playwright 브라우저 설치 (Chromium만 설치하여 이미지 크기 최소화) +RUN playwright install chromium + # 타임존 설정 (Asia/Seoul) ENV TZ=Asia/Seoul RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone diff --git a/README.md b/README.md index bda8974..f39c935 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MapSee-AI -## 최신 버전 : v0.0.4 (2026-01-11) +## 최신 버전 : v0.0.11 (2026-01-11) [전체 버전 기록 보기](CHANGELOG.md) diff --git a/version.yml b/version.yml index 07e3753..bb940ac 100644 --- a/version.yml +++ b/version.yml @@ -34,11 +34,11 @@ # - 버전은 항상 높은 버전으로 자동 동기화됩니다 # =================================================================== -version: "0.0.11" -version_code: 11 # app build number +version: "0.1.1" +version_code: 14 # app build number project_type: "python" # spring, flutter, react, react-native, react-native-expo, node, python, basic metadata: - last_updated: "2026-01-11 15:04:27" + last_updated: "2026-01-11 15:32:48" last_updated_by: "Cassiiopeia" default_branch: "main" integrated_from: "SUH-DEVOPS-TEMPLATE"