Files
opencode-mobile/.tasks/5/plan.md
Den 416ab446c4 feat(5): F-Droid CI pipeline — self-hosted repo via GitHub Pages (#7)
* feat(5): F-Droid CI pipeline — self-hosted repo via GitHub Pages

- New publish-fdroid.yml workflow: builds APK, generates F-Droid repo
  index via fdroidserver, deploys to gh-pages/fdroid/repo
- gitignore: add __pycache__/ and *.pyc
- Generated F-Droid repo signing keystore + stored as GH secrets
- GitHub Pages enabled for gh-pages branch

Closes #5

* fix(5): review findings — pin fdroidserver, add index verification, clean perms

- Pin fdroidserver to 2.4.4 (verified version)
- Add post-update index.xml existence check
- Remove unnecessary pages:write + id-token:write perms

* docs(5): add test report and review artifacts
2026-05-26 01:06:22 -07:00

33 lines
1.7 KiB
Markdown

## Approach Summary
Add CI workflow that builds APK on tag push, generates self-hosted F-Droid repo via fdroidserver, and deploys to GitHub Pages. Users add `https://dzianisv.github.io/opencode-mobile/fdroid/repo` to F-Droid.
## Tradeoff: Speed vs Quality
- chosen: balanced
- rationale: CI pipeline should be reliable; fdroidserver needs careful config for signing key + GitHub Pages deploy. Balanced = thorough in CI-yaml correctness, pragmatic in skipping local Android SDK tests (CI-only).
## Tasks
| # | Title | Files | Depends on | Parallel group | Suggested model |
|---|-------|-------|------------|----------------|-----------------|
| 1 | Generate F-Droid repo keystore + store as GitHub secret | (manual step) | — | A | deepseek-v4-flash-free |
| 2 | Enable GitHub Pages on repo via API | (manual/API step) | — | A | deepseek-v4-flash-free |
| 3 | Write publish-fdroid.yml workflow | `.github/workflows/publish-fdroid.yml`, `.gitignore` | 1, 2 | B | general-purpose |
| 4 | Add `.pyc` to gitignore | `.gitignore` | — | A | general-purpose |
## Parallel Groups
- **A** (independent, manual one-time): 1, 2, 4 — run in parallel
- **B**: 3 — workflow implementation after secrets infrastructure is ready
## Done Criteria
1. `publish-fdroid.yml` exists, valid YAML, lints clean
2. On tag push, CI builds APK, generates F-Droid repo, deploys to gh-pages
3. GitHub Pages is enabled on the repo
4. F-Droid repo keystore stored as GitHub secret
5. `https://dzianisv.github.io/opencode-mobile/fdroid/repo` returns valid F-Droid repo index
6. `.gitignore` has `__pycache__` / `*.pyc`
## Rollback Plan
- Revert the workflow file
- Disable GitHub Pages via API
- Delete `gh-pages` branch