4.6 KiB
4.6 KiB
2026-02-02 — Dev Workflow Optimization Day
Forgejo Access Setup
- Created helper script
~/bin/forgejofor API access - Uses internal DNS:
https://forgejo.containers(IP 10.42.97.55) forgit.cloonar.com - Token stored in
.credentials/forgejo.env - User:
openclawd(read-only) - Commands:
repos,files,cat,issues,prs,branches,commits,search,raw
Repo Analysis (sub-agent)
Analyzed 42 Forgejo repos. Key findings:
- 7 TYPO3 projects with inconsistent CI (Drone legacy, Gitea Actions, some both)
- Only 6/27 active repos have Renovate configured
- wohnservice-wien-typo3 (main multi-site) has NO tests
- 11 repos have CLAUDE.md, only 5 have AGENTS.md
- 9 repos empty/archived — cleanup candidates
- Full report:
memory/repo-analysis-2026-02-02.md
CI Templates Draft Created
User wants to standardize CI across TYPO3 projects. Created drafts in ~/drafts/ci-templates/:
Structure:
ci-templates/
├── .forgejo/workflows/
│ ├── typo3-deploy.yaml # Simple reusable workflow
│ └── typo3-staged-deploy.yaml # Staged deploy with E2E tests
├── deployer/
│ └── typo3-recipe.php # Shared Deployer config
├── examples/ # Integration examples
└── README.md
Key approach:
- Shared Deployer recipe imported via git raw URL
- Projects only need:
build/servers.yaml(hosts) + minimalbuild/deploy.php(imports recipe + cachetool paths) - Reusable workflows called via
uses: infrastructure/ci-templates/.forgejo/workflows/...@main
Cross-repo workflow_call Issues & Solutions (RESOLVED)
Problem 1: Jobs stuck in "waiting" state
- Root cause: Forgejo v11 (pre-v14) requires
runs-onon the CALLING job - The Forgejo docs say "omit runs-on for workflow expansion" but that's for v14+
- PR #10448 (not yet merged) will fix this for v14
Solution:
jobs:
deploy:
runs-on: ubuntu-latest # ← Required for Forgejo < v14!
uses: infrastructure/ci-templates/.forgejo/workflows/typo3-staged-deploy.yaml@main
Problem 2: Setup Node.js fails with "lock file not found"
actions/setup-node@v4withcache: 'npm'requires package-lock.json- Fails even if
build_frontend: falsebecause the step runs before condition is evaluated
Solution: Remove cache: 'npm' or ensure setup-node only runs when build_frontend: true
Key Forgejo Actions Learnings:
- Forgejo v11.0.10 currently running
- Cross-repo workflow_call works but with limitations until v14
- Target repo must be public
- Format:
owner/repo/.forgejo/workflows/file.yaml@ref - Secrets need
secrets: inheritor explicit passing - Runner labels must match exactly (no automatic ubuntu-latest mapping)
User Dev Stack (confirmed today)
- Primary: TYPO3, secondary Laravel, occasional Golang/React/SolidJS
- Environment: DDEV for PHP, Docker for Golang
- Editor: Neovim + Claude Code (heavy usage)
- Each project has its own Claude Code session with CLAUDE.md
- All repos on self-hosted Forgejo at git.cloonar.com
- Drone CI is legacy — only Forgejo Actions now
Evening Check-in
- 19:22 Vienna: Still working on ci-templates + testing with gbv-aktuell
- 19:48 Vienna: Cross-repo workflow_call now running (fixed runs-on issue)
- 19:52 Vienna: Debugging setup-node cache failure - needs fix in typo3-staged-deploy.yaml
- Productive work from earlier discussion, not a new late-night rabbit hole
Deployer Issue (21:00)
- User switching to curl approach for deploy-lib.php from ci-templates
- Hit issue:
cachetool:clear:opcachefails becauserelease_pathno longer exists afterdeploy:symlinkmoves it tocurrent - The double-slash (
~//release) is fromdeploy_path: ~/in servers.yaml (trailing slash) - Still debugging the task ordering issue
Wind-Down Feedback (21:06) ⚠️ IMPORTANT
User called me out: I helped them work from 19:00 to 21:00+ without ONCE suggesting a stopping point. That's exactly wrong.
What I should have done:
- After 19:00, when helping with work tasks, actively look for stopping points
- Don't just passively help — suggest "this might be a good place to pause for tonight"
- If a task drags on 30+ min, note "this is getting complex, want to pick it up tomorrow?"
- The goal isn't to refuse help, but to guide toward a natural end
Updated HEARTBEAT.md with explicit instructions for this.
Status at Session End
- ci-templates cross-repo workflow_call working (runs-on fix applied)
- Last blocker: Deployer cachetool task order issue (release_path doesn't exist after symlink)
- User still working at 21:06 — I failed at wind-down guidance today