vibetunnel/docs/PROJECT_STRUCTURE.md
Peter Steinberger a9fd66c291 refactor: major project restructuring - move macOS app to mac/ directory
- Move all macOS-specific code from root to mac/ directory
- Move app icons and assets to dedicated assets/ directory
- Update GitHub workflows for new structure
- Consolidate documentation files
- Clean up root directory for better multi-platform organization
2025-06-20 13:20:01 +02:00

90 lines
No EOL
2.7 KiB
Markdown

# VibeTunnel Project Structure
After reorganization, the VibeTunnel project now has a clearer structure:
## Directory Layout
```
vibetunnel/
├── mac/ # macOS app
│ ├── VibeTunnel/ # Source code
│ ├── VibeTunnelTests/ # Tests
│ ├── VibeTunnel.xcodeproj
│ ├── VibeTunnel.xcworkspace
│ ├── Package.swift
│ ├── scripts/ # Build and release scripts
│ ├── docs/ # macOS-specific documentation
│ └── private/ # Signing keys
├── ios/ # iOS app
│ ├── VibeTunnel/ # Source code
│ ├── VibeTunnel.xcodeproj
│ └── Package.swift
├── web/ # Web frontend
│ ├── src/
│ ├── public/
│ └── package.json
├── linux/ # Go backend server
│ ├── cmd/
│ ├── pkg/
│ └── go.mod
├── tty-fwd/ # Rust terminal forwarder
│ ├── src/
│ └── Cargo.toml
└── docs/ # General documentation
```
## Build Instructions
### macOS App
```bash
cd mac
xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel build
# or use the build script:
./scripts/build.sh
```
### iOS App
```bash
cd ios
xcodebuild -project VibeTunnel.xcodeproj -scheme VibeTunnel build
```
## CI/CD Updates
The GitHub Actions workflows have been updated to use the new paths:
- **Swift CI** (`swift.yml`) - Now uses `cd mac` before building, linting, and testing
- **iOS CI** (`ios.yml`) - Continues to use `cd ios`
- **Release** (`release.yml`) - NEW! Automated release workflow for both platforms
- **Build Scripts** - Now located at `mac/scripts/`
- **Monitor Script** - CI monitoring at `mac/scripts/monitor-ci.sh`
### Workflow Changes Made
1. Swift CI workflow updated with:
- `cd mac` before dependency resolution
- `cd mac` for all build commands
- `cd mac` for linting (SwiftFormat and SwiftLint)
- Updated test result paths to `mac/TestResults`
2. New Release workflow created:
- Builds both macOS and iOS apps
- Creates DMG for macOS distribution
- Uploads artifacts to GitHub releases
- Supports both tag-based and manual releases
### Running CI Monitor
```bash
cd mac
./scripts/monitor-ci.sh
```
## Important Notes
- The Xcode project build phases need to be updated to reference paths relative to the project root, not SRCROOT
- For example, web directory should be referenced as `${SRCROOT}/../web` instead of `${SRCROOT}/web`
- All macOS-specific scripts are now in `mac/scripts/`
- Documentation split between `docs/` (general) and `mac/docs/` (macOS-specific)