CI: build Android (assembleDebug) on merge to master #57

Open
opened 2026-07-29 04:07:40 -07:00 by westfarn · 0 comments
Owner

Summary

Add a Gitea Actions workflow that builds the Capacitor Android app on every push/merge to master, so we know the native shell still compiles before we clean up / prune Android-related files and keep regressions from landing silently.

Today: Unit Tests + Deploy Beta run on master; no Android/Gradle step exists. Capacitor project lives at llm-fe/android/ (appId com.aimloperations.chat, Hesychia).

Infra half (runner JDK/SDK): server-infra#9.
Follow-on: manual Deploy Android button — #58.


Current state

Workflow Trigger Android?
unit-tests.yml push/PR → master no
deploy-beta.yml push → master no (web beta only)
deploy-prod.yml workflow_dispatch no

Local build path already documented:

cd llm-fe
npm ci
npm run build:mobile    # .env.mobile → CRA build → cap sync android
cd android && ./gradlew assembleDebug

Work

1. New workflow .gitea/workflows/android-build.yml

  • Name: e.g. Android Build
  • Trigger: push to master (optional: also pull_requestmaster)
  • Runner: self-hosted
  • Steps:
    1. actions/checkout@v4
    2. Setup Node 20
    3. npm ci in llm-fe
    4. npm run build:mobile
    5. cd android && ./gradlew assembleDebug --no-daemon
    6. (Optional) upload app/build/outputs/apk/debug/app-debug.apk as artifact

Prefer unsigned debug here — no keystore required. Keeps master gate cheap and green without Play secrets.

2. Docs

  • Update root README.md CI table + llm-fe/ANDROID.md to list the new workflow
  • Note: after this is green on master, safe to clean up obsolete Android scaffolding / docs cruft called out elsewhere

3. Out of scope


Coordination

  • Depends on runner having JDK 17 + Android SDK 35 (ANDROID_HOME) — server-infra#9
  • Does not block web Deploy Beta / Deploy Prod

Acceptance criteria

  • Push/merge to master runs an Android build job that completes assembleDebug
  • Failure is visible in Gitea Actions (blocks confidence for cleanup)
  • No keystore / Play credentials required for this workflow
  • Web beta auto-deploy and Deploy Prod unchanged
  • README / ANDROID.md mention the workflow

References

## Summary Add a Gitea Actions workflow that **builds the Capacitor Android app on every push/merge to `master`**, so we know the native shell still compiles before we clean up / prune Android-related files and keep regressions from landing silently. Today: Unit Tests + Deploy Beta run on `master`; **no Android/Gradle step** exists. Capacitor project lives at `llm-fe/android/` (appId `com.aimloperations.chat`, Hesychia). Infra half (runner JDK/SDK): [server-infra#9](https://git.aimloperations.com/ai_ml_operations/server-infra/issues/9). Follow-on: manual **Deploy Android** button — [#58](https://git.aimloperations.com/ai_ml_operations/chat_web_app/issues/58). --- ## Current state | Workflow | Trigger | Android? | |----------|---------|----------| | `unit-tests.yml` | push/PR → `master` | no | | `deploy-beta.yml` | push → `master` | no (web beta only) | | `deploy-prod.yml` | `workflow_dispatch` | no | Local build path already documented: ```bash cd llm-fe npm ci npm run build:mobile # .env.mobile → CRA build → cap sync android cd android && ./gradlew assembleDebug ``` --- ## Work ### 1. New workflow `.gitea/workflows/android-build.yml` - **Name:** e.g. `Android Build` - **Trigger:** `push` to `master` (optional: also `pull_request` → `master`) - **Runner:** `self-hosted` - **Steps:** 1. `actions/checkout@v4` 2. Setup Node 20 3. `npm ci` in `llm-fe` 4. `npm run build:mobile` 5. `cd android && ./gradlew assembleDebug --no-daemon` 6. (Optional) upload `app/build/outputs/apk/debug/app-debug.apk` as artifact Prefer **unsigned debug** here — no keystore required. Keeps master gate cheap and green without Play secrets. ### 2. Docs - Update root `README.md` CI table + `llm-fe/ANDROID.md` to list the new workflow - Note: after this is green on master, safe to clean up obsolete Android scaffolding / docs cruft called out elsewhere ### 3. Out of scope - Signing / `bundleRelease` / Play upload → #58 - Changing `deploy.sh` / beta/prod webroots - versionCode bumps --- ## Coordination - Depends on runner having JDK 17 + Android SDK 35 (`ANDROID_HOME`) — [server-infra#9](https://git.aimloperations.com/ai_ml_operations/server-infra/issues/9) - Does not block web Deploy Beta / Deploy Prod ## Acceptance criteria - [ ] Push/merge to `master` runs an Android build job that completes `assembleDebug` - [ ] Failure is visible in Gitea Actions (blocks confidence for cleanup) - [ ] No keystore / Play credentials required for this workflow - [ ] Web beta auto-deploy and Deploy Prod unchanged - [ ] README / ANDROID.md mention the workflow ## References - Capacitor wrap: #20 - Scripts: `llm-fe/package.json` (`build:mobile`), `llm-fe/android/` - Pattern: `.gitea/workflows/unit-tests.yml`, `deploy-prod.yml` - Deploy Android: #58 - Infra: server-infra#9
westfarn added a new dependency 2026-07-29 04:15:02 -07:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Reference: ai_ml_operations/chat_web_app#57