feat: opencode mobile and github actions workflow#1
Conversation
- Add React Native mobile app from feat/mobile-app - Remove iOS and web platform configurations - Add Android-only GitHub Actions workflow for APK builds - Configure Android-specific settings (versionCode, adaptiveIcon) - Add EAS build configuration for Android - Update documentation for Android-only support The mobile app allows connecting to OpenCode servers from Android devices with support for local network, tunnels, and cloud-hosted instances. Co-authored-by: YajanaRao <38914337+YajanaRao@users.noreply.github.com>
|
Hey! Your PR title Please update it to start with one of:
Where See CONTRIBUTING.md for details. |
|
Hey! Your PR title Please update it to start with one of:
Where See CONTRIBUTING.md for details. |
|
Hey! Your PR title Please update it to start with one of:
Where See CONTRIBUTING.md for details. |
- Add branch name input to workflow_dispatch trigger - Update checkout to use input branch when manually triggered - Add branch name to build summary output - Allows building APK from any branch via GitHub Actions UI Users can now: 1. Go to Actions tab 2. Select "Build Mobile APK (Android Only)" workflow 3. Click "Run workflow" 4. Enter any branch name to build APK from Co-authored-by: YajanaRao <38914337+YajanaRao@users.noreply.github.com>
Switching to GitHub-hosted ubuntu-latest runner to ensure the workflow can run immediately without queuing issues. Blacksmith runners can be added later once the workflow is proven and stable.
Replace Blacksmith-specific stickydisk with standard GitHub actions/cache to ensure compatibility with all runner types (ubuntu-latest, self-hosted, etc.). This provides more reliable caching across different CI environments.
…brand - Download OpenCode logo from https://opencode.ai/brand - Replace all placeholder JSON files with PNG images - Update app.json to reference PNG files instead of JSON - Add icon, adaptive-icon, splash-icon, and favicon assets - Fixes Expo prebuild error: Invalid mimeType for adaptive-icon.json
Workflow improvements: - Add Gradle caching to speed up subsequent Android builds - Cache ~/.gradle/caches, ~/.gradle/wrapper, and android/.gradle - Reduces build time from 10-20min (first) to 5-10min (cached) Mobile app improvements: - Support DNS addresses and full URLs in quick connect mode - Accept formats: domain (opencode.yajana.in), IP:port (192.168.1.100:4096), or full URL (https://opencode.yajana.in) - Auto-detect URL format and apply http:// prefix when needed - Update UI hints and examples to show all connection formats - Improve error messages for both local and hosted connections This allows users to connect to OpenCode hosted on platforms like Render.com using domains instead of requiring IP addresses.
Add 'bun run web' script to quickly start Expo dev server in web mode. Makes it easier to test the mobile app in a browser locally.
|
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
This pull request introduces the initial setup for the OpenCode mobile app, focusing on Android support with a React Native/Expo client. It adds a new build workflow for APK generation, project configuration, documentation, and core screens for managing server connections. The changes provide a foundation for developing, building, and connecting the mobile client to OpenCode servers.
Mobile App Project Initialization
packages/mobile/with Expo configuration (app.json), a comprehensive.gitignore, and documentation files (README.md,AGENTS.md) describing architecture, features, and development instructions. [1] [2] [3] [4]GitHub Actions & Build Automation
.github/workflows/build-mobile-apk.ymlto automate Android APK builds on pushes to the mobile app branch or via manual dispatch, including environment setup, dependency installation, Expo prebuild, Gradle build, and APK artifact upload..github/actions/setup-bun/action.ymlto use the officialactions/cachefor caching Bun dependencies, improving reliability and maintainability.Mobile App Core UI
app/(tabs)/_layout.tsx, providing navigation for Sessions, Connections, and Settings.app/(tabs)/connections.tsx) for managing server connections, including add/edit/delete, active connection selection, and user preferences for message pagination.