Enable Forgejo Actions (Phase 1) #48

Merged
eblume merged 8 commits from feature/forgejo-actions-p1 into main 2026-01-23 17:00:13 -08:00
Owner

Summary

  • Refactor Forgejo app.ini to be managed by ansible with secrets from 1Password
  • Enable Forgejo Actions in config ([actions] ENABLED = true)
  • Add repo.actions to DEFAULT_REPO_UNITS
  • Clean up unused MySQL database fields (we use SQLite)

Phase 1 Progress

This PR covers the first part of Phase 1 (ci-cd-bootstrap plan):

  • Refactor app.ini to ansible template
  • Store secrets in 1Password
  • Enable Actions in config
  • Deploy config changes (pending review)
  • Create runner registration token
  • Deploy runner to k8s
  • Test with simple workflow

Deployment and Testing

  • Run mise run provision-indri -- --tags forgejo to deploy
  • Verify Forgejo restarts correctly
  • Verify Actions tab appears in repo settings

🤖 Generated with Claude Code

## Summary - Refactor Forgejo app.ini to be managed by ansible with secrets from 1Password - Enable Forgejo Actions in config (`[actions] ENABLED = true`) - Add `repo.actions` to DEFAULT_REPO_UNITS - Clean up unused MySQL database fields (we use SQLite) ## Phase 1 Progress This PR covers the first part of Phase 1 (ci-cd-bootstrap plan): - [x] Refactor app.ini to ansible template - [x] Store secrets in 1Password - [x] Enable Actions in config - [ ] Deploy config changes (pending review) - [ ] Create runner registration token - [ ] Deploy runner to k8s - [ ] Test with simple workflow ## Deployment and Testing - [ ] Run `mise run provision-indri -- --tags forgejo` to deploy - [ ] Verify Forgejo restarts correctly - [ ] Verify Actions tab appears in repo settings 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Move app.ini to ansible template with secrets from 1Password
- Enable Forgejo Actions in config
- Add DEFAULT_REPO_UNITS with repo.actions
- Clean up unused MySQL database fields (using SQLite)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ArgoCD Application for forgejo-runner
- Deployment with Docker socket access for running workflow containers
- Secret template for runner registration token (via op inject)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use http://forge.tailscale.svc.cluster.local:3001 instead of
https://forge.tail8d86e.ts.net - the Tailscale operator provides
egress routing to indri via this internal service.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use k8s pods instead of Docker containers for job execution
- Add RBAC for runner to create/manage job pods
- Add ConfigMap with runner config for kubernetes backend
- Remove Docker socket mount (no longer needed)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use host labels (ubuntu-latest:host) instead of docker://
- Remove RBAC (not needed for host mode)
- Simplify configmap (no container backend config needed)

Host mode runs jobs directly in the runner container, which is
acceptable since we control all workflows and the pod provides
isolation from indri.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add test workflow and document CI/CD setup
Some checks failed
Test CI / test (pull_request) Failing after 38s
70f2227313
- Create .forgejo/workflows/test.yaml with basic hello world workflow
- Update README.md with CI/CD section explaining Forgejo Actions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix test workflow for host mode, add custom runner image plan
Some checks failed
Test CI / test (pull_request) Failing after 0s
b2c5716e21
- Use git clone instead of actions/checkout (no Node.js in runner)
- Add Use Case 0 to P4: build custom runner image with Node.js

The stock forgejo/runner image lacks Node.js, so standard GitHub
Actions don't work in host mode. P4 now includes building a custom
runner image as the first step.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix checkout to use head_ref for PRs
All checks were successful
Test CI / test (pull_request) Successful in 0s
66c20e8edd
gitea.ref_name returns PR number for pull_request events, need to
use gitea.head_ref to get the actual branch name.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
eblume merged commit 7893c41020 into main 2026-01-23 17:00:13 -08:00
eblume referenced this pull request from a commit 2026-01-23 17:00:14 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!48
No description provided.