Commit Graph
11 Commits
Author SHA1 Message Date
rock 553f7b0569 ci: fix runner label - use 'rust' instead of non-existent 'docker'
BUG FOUND: Workflow was requesting 'runs-on: docker' but Forgejo only has:
  - golang (golang:1.26-bookworm + dind)
  - rust (rust:1.83-bookworm + dind)
  - node (node:22-bookworm)

No 'docker' runner exists, so CI hung indefinitely waiting for unavailable runner.

FIX: Changed to 'runs-on: rust'
Rationale:
   Rust toolchain pre-installed (no cargo install needed)
   Docker-in-Docker available (for docker build + push)
   2 CPU, 4GB RAM limits (sufficient for Rust builds)
   1.83-bookworm base image (production-ready)
   Perfect for Rust projects

Result: CI will now acquire the correct runner and complete builds in 5-10 minutes

See .forgejo/README.md for runner reference guide
2026-09-05 15:08:12 -07:00
rock 7a71c4a73f ci: add production-ready Forgejo workflow for imageUpdater
RESTORED: Single, minimal CI workflow
- Triggers on: push to main branch
- Runs on: docker runner (available)
- Does: Build → Tag → Push to registry
- Time: 5-10 minutes per build

Workflow design:
 ZERO third-party actions (no hidden timeouts)
 Direct docker commands only (reliable)
 Progress output visible
 Proper secret handling
 Clean error paths
 Works with imageUpdater

Usage:
1. Set secret in Forgejo: REGISTRY_PAT=<token>
2. Push to main
3. CI builds and pushes image
4. imageUpdater detects new version
5. K8s deployment auto-updates

Image pushed to:
  - forgejo.riotpiao.com/rock/poimen-memory:latest
  - forgejo.riotpiao.com/rock/poimen-memory:<short-SHA>

Manual fallback still available:
  export REGISTRY_TOKEN='<token>'
  ./scripts/build-and-push.sh

No race conditions:
 ONE workflow file only (.forgejo/workflows/build.yaml)
 No .gitea/ directory (removed)
 No competing auto-triggers
2026-09-05 15:05:44 -07:00
rock 1fa1189674 ci: disable auto workflow - Forgejo runner stuck/unavailable
CI is stuck waiting on 'docker' runner that doesn't exist or is unresponsive.

Disabled: .forgejo/workflows/build.yaml (renamed to .disabled)

Alternatives:
1. Manual docker build + push (works locally)
2. Fix Forgejo runner configuration
3. Use different runner label when available

To re-enable: rename build.yaml.disabled → build.yaml and push
2026-09-05 14:26:41 -07:00
rock 29a708b34c ci: simplify workflow - remove third-party actions that don't work on Forgejo
Build & Push Memory Image / build-push (push) Failing after 3m23s
Build and Push / Build and push image (push) Skipped
Build and Push / Test (push) Failing after 2m11s
Issues that caused stuck CI:
- docker/setup-buildx-action@v3 (not reliable on Forgejo)
- docker/login-action@v3 (not reliable on Forgejo)
- docker/build-push-action@v5 (too complex)
- GHA caching (type=gha not supported on Forgejo)

Fixed with:
- Plain docker commands (login, build, push)
- No buildx complexity
- Direct progress output
- Proper cleanup on failure
- Timeout-safe (no hanging processes)
2026-09-05 14:21:36 -07:00
rock 43c8f7ff14 ci: fix Dockerfile for Rust + correct Forgejo runner labels
Build & Push Memory Image / build-push (push) Failing after 14s
Build and Push / Test (push) Failing after 5m22s
Build and Push / Build and push image (push) Skipped
Issues fixed:
- Dockerfile was Python/Uvicorn (wrong for Rust project)
  - Changed to multi-stage Rust build (rust:1.81 → debian:bookworm-slim)
  - Correct binary name: mem (not mem-cli)
  - Added proper health check with curl

- CI runner labels were incorrect (rust/golang → docker)
  - Changed test job to: runs-on: docker with rust:1.81-bookworm container
  - Changed build job to: runs-on: docker

- Docker build config was broken
  - Switched to standard actions (setup-buildx, login, build-push)
  - Added Cargo caching (registry, git, target)
  - Added format + clippy checks
  - Simplified login/build/push flow

Ready for CI/CD pipeline restart.
2026-09-05 14:07:11 -07:00
rock 84fee74f23 fix: use rust/golang runners (docker runner doesn't exist)
Available runners: rust, golang, node
Test job: runs-on rust with container rust:1-bookworm (modern glibc)
Build job: runs-on golang with container docker:27-cli (same as before)
2026-08-28 15:52:25 -07:00
rock fc84f72e21 fix: switch CI from rust runner to docker runner with rust:1-bookworm
Old 'rust' runner had stale glibc causing linker failures.
Now uses 'docker' runner (same as other repos) with explicit
rust:1-bookworm container image (modern glibc).
Added cargo cache step for faster builds.
2026-08-28 15:46:27 -07:00
Story Crater Bot 9f6502aec4 fix(ci): use git clone instead of actions/checkout (no node in rust image) 2026-08-23 17:35:45 -07:00
Story Crater Bot 80f20474b6 Standardize CI/CD: use homelab-frontend pattern (REGISTRY_PAT, docker:27-cli, all repos) 2026-08-23 16:05:18 -07:00
Story Crater Bot f459ae5a5d Simplify CI/CD: use Forgejo built-in token for registry push 2026-08-23 16:03:28 -07:00
Story Crater Bot eaed7fc42a Add K8s app deployment, Dockerfile, and CI workflow (Option A) 2026-08-23 00:01:30 -07:00