Adds a step to install Node.js and run tsc --noEmit in the frontend
directory, catching TypeScript type errors before images are built.
Ruff was already present; this completes issue #260.
Closesleeworks-agents/SPARC#260
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Upgrade lucide-react to v1.7.0 for proper TypeScript declarations and
add a TypeScript type check step to the test workflow. Both ruff (Python)
and tsc --noEmit (TypeScript) now block merging on failure.
Closesleeworks-agents/SPARC#52
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add test job to build.yaml that runs pytest and ruff before building images
- Add standalone test.yaml workflow for PRs
- Add ruff.toml with E/F/I rules configured
- Fix all ruff lint errors: sort imports, remove unused imports, fix re-exports
- Build jobs now depend on test job passing (needs: test)
Closesleeworks-agents/SPARC#18Closesleeworks-agents/SPARC#19
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Push images with versioned tags in format TIMESTAMP-COMMIT and
frontend-TIMESTAMP-COMMIT for better traceability and rollback support.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add insecure-registries configuration to allow HTTP connections
to gitea.gitea.svc.cluster.local instead of HTTPS.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Split the single build job into two parallel jobs (build-api and
build-frontend) to enable simultaneous container builds when multiple
runners are available. Frontend images are tagged with frontend- prefix.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- buildah requires user namespaces which aren't available in containers
- Use Docker CLI with host's Docker socket (already mounted by runner)
- Keep Alpine base and optimizations (git clone, sh shell)
- Simplest solution for containerized Kubernetes runners
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Switch from archived Kaniko to actively maintained buildah
- Use buildah from Alpine repos (no manual binary downloads)
- Replace bash syntax with POSIX sh (case instead of [[ ]])
- buildah works better in unprivileged containerized environments
- Simpler setup: just apk add buildah, no extra configuration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Use sh (built into Alpine) instead of bash to avoid install errors
- Replace actions/checkout@v4 with direct git clone commands
- Add ca-certificates for HTTPS support
- Faster and more reliable for lightweight Alpine containers
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace Docker CLI with Kaniko executor for Kubernetes compatibility
- Combine build and push into single Kaniko step
- Remove Docker daemon dependency for better performance in containerized runners
- Reduce setup time with lighter dependencies (~14MB vs ~50MB+)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove docker/setup-buildx-action step which requires special
Docker daemon configuration. Use plain docker build commands
instead for better compatibility with Gitea Actions runner.
This simplifies the workflow and works with the standard
catthehacker/ubuntu:act-latest images that have Docker CLI
pre-installed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add Gitea Actions workflow to automatically build and push Docker
images to Gitea container registry.
New files:
- .gitea/workflows/build.yaml: Automated Docker build workflow
- Triggers on push to main, tags, and manual dispatch
- Builds Docker image from Dockerfile
- Tags appropriately (commit SHA, tags, latest)
- Pushes to Gitea registry at 10.0.1.10
- CONTAINER_REGISTRY.md: Complete documentation for:
- Enabling Gitea container registry
- Setting up CI/CD with Gitea Actions
- Creating and using personal access tokens
- Pulling and pushing images
- Troubleshooting common issues
The workflow is compatible with the existing Dockerfile and provides
automated builds similar to the GitLab CI pipeline.
Prerequisites:
- Gitea container registry enabled
- GITEA_TOKEN secret configured with write:package scope
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>