Commit graph

6 commits

Author SHA1 Message Date
Ullrich Schäfer
159d3f3348
ci(forgejo): adapt e2e + image-smoke to isolated per-job DinD runners
Some checks failed
CI / Dockerfile Package Check (push) Successful in 2m52s
CI / Security Scan (push) Successful in 7m17s
CI / OpenSpec Validate (push) Successful in 4m24s
CI / Typecheck (push) Successful in 4m5s
CI / Lint (push) Successful in 5m44s
CI / Build (push) Successful in 2m17s
CI / Unit Tests (push) Failing after 4m11s
CI / Journal Image Smoke Test (push) Failing after 4m59s
CI / Visual Tests (push) Successful in 11m24s
CI / E2E Tests (push) Failing after 7m59s
Runners migrated to 2 isolated runner+dind pairs (capacity 1 each): each job
gets its own docker daemon (job-to-job isolation; host daemon untouched).
- e2e: seed BRouter segment into the compose volume via a DinD container
  (no cross-daemon bind mount); services addressed at host.docker.internal;
  compose project pinned to 'trails'.
- image-smoke: db:push reaches postgres at host.docker.internal; the
  --network-host journal container uses localhost; health-check via
  host.docker.internal.
DOCKER_HOST is also injected globally via the runner's config (runner.envs).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 20:33:43 +02:00
Ullrich Schäfer
d9660abee1
ci(forgejo): DOCKER_HOST=host.docker.internal:2375 for DinD jobs
Some checks failed
CI / Dockerfile Package Check (push) Successful in 35s
CI / OpenSpec Validate (push) Successful in 3m15s
CI / Security Scan (push) Successful in 3m27s
CI / Typecheck (push) Successful in 4m39s
CI / Unit Tests (push) Failing after 4m19s
CI / Build (push) Successful in 4m19s
CI / Journal Image Smoke Test (push) Failing after 6m32s
CI / Lint (push) Successful in 14m17s
CI / E2E Tests (push) Failing after 2m42s
CI / Visual Tests (push) Has been cancelled
Verified empirically: from a job container the DinD daemon is reachable at
host.docker.internal:2375 (host-gateway 172.17.0.1), not docker-in-docker
(a host-network alias absent inside DinD). Runner container.network reverted
to "" (a host network name is not found inside DinD and fails every job).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 17:33:58 +02:00
Ullrich Schäfer
ee195787ac
ci(forgejo): fix artifact fork URL, DinD docker access, db test timeout
Some checks failed
CI / Security Scan (push) Failing after 6s
CI / Dockerfile Package Check (push) Failing after 10s
CI / OpenSpec Validate (push) Failing after 9s
CI / Typecheck (push) Failing after 6s
CI / Lint (push) Failing after 7s
CI / Unit Tests (push) Failing after 11s
CI / Build (push) Failing after 14s
CI / E2E Tests (push) Has been skipped
CI / Visual Tests (push) Failing after 5s
CI / Journal Image Smoke Test (push) Failing after 8s
- forgejo/upload-artifact -> full code.forgejo.org URL (not on github.com,
  where DEFAULT_ACTIONS_URL sent it).
- e2e + journal-image-smoke: set DOCKER_HOST=tcp://docker-in-docker:2375 so
  the job's docker CLI reaches the DinD daemon (no /var/run/docker.sock).
  (Runner config also now attaches jobs to the runner network.)
- @trails-cool/db test: --testTimeout=20000; the cold drizzle/postgres import
  exceeds vitest's 5s default under runner CPU contention.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 17:26:18 +02:00
Ullrich Schäfer
3df81af0b5
ci(forgejo): fix gitleaks artifact upload + use forgejo/upload-artifact
Some checks failed
CI / Dockerfile Package Check (push) Successful in 33s
CI / OpenSpec Validate (push) Successful in 3m31s
CI / Security Scan (push) Successful in 3m42s
CI / Typecheck (push) Successful in 4m59s
CI / Unit Tests (push) Failing after 4m35s
CI / Build (push) Successful in 4m22s
CI / Visual Tests (push) Failing after 1m48s
CI / E2E Tests (push) Failing after 4m15s
CI / Journal Image Smoke Test (push) Failing after 6m23s
CI / Lint (push) Successful in 21m38s
- gitleaks: GITLEAKS_ENABLE_UPLOAD_ARTIFACT=false (its @actions/artifact v2
  upload throws GHESNotSupportedError on Forgejo; the scan itself passes).
- swap actions/upload-artifact@v7 -> forgejo/upload-artifact@v4 (v4+ artifact
  API is unsupported on non-github.com servers).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 16:44:05 +02:00
Ullrich Schäfer
7e6d4cbcb2
ci(forgejo): port full CI + CD workflows to Forgejo Actions
Some checks failed
CI / Dockerfile Package Check (push) Successful in 42s
CI / Security Scan (push) Failing after 1m7s
CI / OpenSpec Validate (push) Successful in 2m31s
CI / Typecheck (push) Successful in 5m16s
CI / Unit Tests (push) Failing after 5m50s
CI / Build (push) Successful in 4m30s
CI / Lint (push) Successful in 19m28s
CI / Journal Image Smoke Test (push) Failing after 9m17s
CI / E2E Tests (push) Failing after 2m15s
CI / Visual Tests (push) Successful in 16m22s
- ci.yml: all 10 jobs (security/dockerfile/openspec/typecheck/lint/test/
  build/visual/e2e/image-smoke); drop merge_group, gitleaks via full URL,
  visual-diff PR comment via Forgejo API.
- cd-apps/cd-brouter/cd-infra/cd-staging: drop GitHub Environments, GHCR
  push auth via DEPLOY_GHCR_TOKEN. cd-staging flags Forgejo PR-event and
  peter-evans comment-action risks for validation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 16:25:14 +02:00
Ullrich Schäfer
db8a3bf2ad
ci(forgejo): add proof CI workflow for Forgejo Actions
All checks were successful
CI / Typecheck (push) Successful in 4m54s
First step of porting CI/CD from GitHub Actions to the self-hosted
Forgejo at git.ullrich.is. Proves the trails-forgejo runner executes
a real job (checkout + pnpm + typecheck) before porting the full suite.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 16:07:47 +02:00