name: Tauri Release on: push: tags: - 'v*' workflow_dispatch: jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 # Python + bundled server - uses: astral-sh/setup-uv@v5 - run: uv python install 3.13 - run: uv sync - run: | uv pip install pyinstaller uv run pyinstaller --name kjvstudy-server --onedir --console \ --add-data "kjvstudy_org/templates:kjvstudy_org/templates" \ --add-data "kjvstudy_org/static:kjvstudy_org/static" \ --add-data "kjvstudy_org/data:kjvstudy_org/data" \ --hidden-import uvicorn.logging --hidden-import uvicorn.loops \ --hidden-import uvicorn.loops.auto --hidden-import uvicorn.protocols \ --hidden-import uvicorn.protocols.http --hidden-import uvicorn.protocols.http.auto \ --hidden-import uvicorn.protocols.websockets --hidden-import uvicorn.protocols.websockets.auto \ --hidden-import uvicorn.lifespan --hidden-import uvicorn.lifespan.on \ --collect-submodules kjvstudy_org kjvstudy_org/server.py # Rust + Tauri - uses: dtolnay/rust-toolchain@stable - uses: swatinem/rust-cache@v2 with: workspaces: './src-tauri -> target' # Install Tauri CLI v2 - name: Install Tauri CLI run: npm install -g @tauri-apps/cli@^2.0.0 # Build manually instead of using tauri-action (which defaults to v1) - name: Build Tauri app run: cargo tauri build working-directory: src-tauri # Upload artifacts - name: Upload DMG uses: actions/upload-artifact@v4 with: name: KJV-Study-macOS path: src-tauri/target/release/bundle/dmg/*.dmg # Create release - name: Create Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: draft: true files: src-tauri/target/release/bundle/dmg/*.dmg env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}