Commit 45af19b
authored
Jules PR (#6)
* feat: Implement Automated Android Build Pipeline
Implements a complete, two-stage GitHub Actions pipeline to automatically build an Android APK from the repository.
- **Configuration Bot**: A workflow (`config-bot.yml`) runs on every push to ensure the repository has a valid Android project structure. It executes a script (`align_android_config.sh`) to generate any missing Gradle files, source files, or the official Gradle Wrapper, and auto-commits the changes.
- **Build Bot**: A second workflow (`android-build.yml`) triggers after the configuration bot succeeds. It sets up a Java/Android environment, installs frontend dependencies for the web terminal (`npm install`), and builds a debug APK using Gradle.
- **Self-Contained APK**: The resulting Android application packages the web terminal and embeds a `nodejs-mobile-android` runtime. This allows the terminal's `server.js` backend to run directly on the device, making the application fully self-contained and functional. The `server.js` and Android runtime logic have been aligned to work together correctly.
- The final APK is uploaded as a downloadable artifact from the GitHub Actions run.
* feat: Implement Standalone Android App with Flexible Backend
This commit introduces a complete system for building and running the web-based terminal as a standalone Android application. The solution is designed to be flexible and independent of any specific build environment.
Key features include:
- **Full Android Project Structure**: Adds all necessary files for a complete Gradle-based Android project, including a full, official Gradle Wrapper for reproducible builds.
- **Standalone Build Script**: A new `build_standalone.sh` script provides a one-step command to build the APK locally, independent of GitHub Actions.
- **Embedded Node.js Server**: The Android app packages and runs the `server.js` backend directly on the device using the `nodejs-mobile-android` library, making the app fully self-contained.
- **Flexible Backend Connectivity**: The app UI includes an input field and a "Connect" button, allowing the user to connect the terminal to either the local embedded server (`ws://localhost:3000/terminal`) or any remote WebSocket backend.
- **JavaScript Bridge**: The web terminal's frontend has been modified to expose a JavaScript function that the native Android code calls to initiate the connection, enabling the flexible backend logic.
---------
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>1 parent b11ed4a commit 45af19b
17 files changed
Lines changed: 1735 additions & 0 deletions
File tree
- .github/workflows
- app
- gradle/wrapper
- src/main
- java/com/superlab/quantumide
- res/layout
- web-terminal
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
0 commit comments