class EditableFolderPathLabel 롤백 #20
This file contains hidden or 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: Build macOS App | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| release: | |
| types: [ published ] | |
| jobs: | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - name: Install system dependencies | |
| run: | | |
| brew install exiftool libraw create-dmg | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| # 최신 버전으로 업데이트하여 심볼릭 링크 버그 수정 | |
| pip install --upgrade pyinstaller | |
| pip install --upgrade PySide6 | |
| pip install exifread | |
| - name: Clean previous build artifacts (강력한 정리) | |
| run: | | |
| # 모든 빌드 관련 파일 완전 삭제 | |
| sudo rm -rf dist build __pycache__ .pytest_cache | |
| # 모든 캐시 완전 정리 | |
| sudo rm -rf ~/.cache/pip ~/.cache/pyinstaller /tmp/pip-* /tmp/_MEI* /tmp/pyinstaller* | |
| # 임시 빌드 디렉토리 정리 | |
| sudo rm -rf /tmp/vibeculling_* 2>/dev/null || true | |
| # PySide6 관련 심볼릭 링크 특별 정리 | |
| sudo find . -path "*/PySide6/Qt/lib/*.framework/Resources" -type l -delete 2>/dev/null || true | |
| sudo find . -path "*/PySide6/Qt/lib/*.framework/Versions/Current" -type l -delete 2>/dev/null || true | |
| # 모든 심볼릭 링크 완전 제거 | |
| find . -type l -delete 2>/dev/null || true | |
| # *.pyc 파일 완전 삭제 | |
| find . -name "*.pyc" -delete 2>/dev/null || true | |
| # VibeCulling.spec 파일 강제 삭제 | |
| rm -f VibeCulling.spec 2>/dev/null || true | |
| # PyInstaller 작업 디렉토리 강제 정리 | |
| sudo rm -rf /tmp/pyinstaller_* 2>/dev/null || true | |
| - name: Build with PyInstaller (임시 디렉토리 사용) | |
| run: | | |
| chmod +x build_mac_app.sh | |
| ./build_mac_app.sh | |
| # 빌드 후 spec 파일 및 임시 파일 정리 | |
| - name: Clean spec and temp files after build | |
| run: | | |
| rm -f VibeCulling.spec | |
| rm -rf /tmp/vibeculling_* | |
| continue-on-error: true | |
| - name: Retry build if failed (강력한 정리 후 재시도) | |
| if: failure() | |
| run: | | |
| echo "빌드 실패 - 강력한 정리 후 재시도" | |
| # 모든 빌드 관련 파일 완전 삭제 | |
| sudo rm -rf dist build *.spec __pycache__ .pytest_cache 2>/dev/null || true | |
| # 모든 캐시 완전 정리 | |
| sudo rm -rf ~/.cache/pip ~/.cache/pyinstaller 2>/dev/null || true | |
| sudo rm -rf /tmp/pip-* /tmp/_MEI* /tmp/pyinstaller* 2>/dev/null || true | |
| # 임시 빌드 디렉토리 정리 | |
| sudo rm -rf /tmp/vibeculling_* 2>/dev/null || true | |
| # PySide6 관련 심볼릭 링크 특별 정리 | |
| sudo find . -path "*/PySide6/Qt/lib/*.framework/Resources" -type l -delete 2>/dev/null || true | |
| sudo find . -path "*/PySide6/Qt/lib/*.framework/Versions/Current" -type l -delete 2>/dev/null || true | |
| # 모든 심볼릭 링크 삭제 | |
| find . -type l -delete 2>/dev/null || true | |
| find . -name "*.pyc" -delete 2>/dev/null || true | |
| # 작업 디렉토리 새로 생성 | |
| mkdir -p dist build | |
| # 재시도 | |
| chmod +x build_mac_app.sh | |
| ./build_mac_app.sh | |
| # 재시도 후 spec 파일 및 임시 파일 정리 | |
| rm -f VibeCulling.spec 2>/dev/null || true | |
| rm -rf /tmp/vibeculling_* 2>/dev/null || true | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: VibeCulling-macOS | |
| path: | | |
| dist/ | |
| *.dmg | |
| *.zip |