- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks are pending
carin/review Carin review in progress...
This reverts commit
|
||
| apk-server | ||
| ci-builder | ||
| .gitignore | ||
| README.md | ||
buildserv — Peregrine CI & APK Server
Build server infrastructure for the Peregrine Bluesky client.
Components
ci-builder
Go service that polls Forgejo for new commits and PRs, runs ./gradlew assembleDebug, copies APKs to the shared download directory, enforces retention (keep newest 3 per branch/ref), and reports commit status back to Forgejo. Listens on :9090.
apk-server
Go HTTP server that serves a web dashboard for builds, debug APK downloads, and release verification artifacts. Listens on :8000 (or $PORT). The dashboard proxies CI API calls to ci-builder on :9090.
Directory layout (on buildserv)
| Path | Purpose |
|---|---|
/home/exedev/ci-builder/ |
ci-builder binary + source + logs |
/home/exedev/apk-server/ |
apk-server binary + source |
/home/exedev/apk-builds/ |
Debug APK storage (retention-managed) |
/srv/peregrine/releases/ |
Release verification artifacts |
Deployment
- Build both binaries:
cd ci-builder && go build -o ci-builder . && cd ../apk-server && go build -o apk-server . - Place binaries in their respective directories on buildserv
- Systemd units manage restarts — see
/etc/systemd/system/on buildserv
Retention policy
Debug APKs are pruned to the newest 3 per branch/ref. Files not matching the expected naming pattern (peregrine-<branch>-<commit>-<timestamp>.apk) are preserved for manual review. Retention runs after every successful build and fails open (retention errors don't fail the build).