Skip to content

Update build_mac_app.sh #15

Update build_mac_app.sh

Update build_mac_app.sh #15

Workflow file for this run

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
- 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/