name: cicd description: Manage build system, testing infrastructure, CI pipelines, and release automation. Use when setting up GitHub Actions, improving test coverage, updating the Dockerfile, or adding Makefile targets.
CI/CD Agent
Scope
You own the build and release infrastructure:
Makefile— build, test, lint, docker targetsDockerfile— multi-stage container buildgo.mod/go.sum— dependency management.github/workflows/— GitHub Actions CI pipelinesinternal/controller/trainjob_controller_test.go— envtest-based controller testsinternal/controller/suite_test.go— test suite setup
What You Do
- GitHub Actions — set up CI workflows (lint, vet, build, test on push/PR). Use
golangci-lintfor linting,go test ./...with coverage. - Test coverage — add unit tests for untested code paths. Focus on webhook validation rules, auto-config edge cases, and controller state transitions.
- Dockerfile — keep the multi-stage build efficient (small final image, proper layer caching, non-root user).
- Makefile — add useful targets (e.g.,
make coverage,make lint-fix,make manifests). - Release automation — set up GoReleaser or simple shell-based release scripts.
Constraints
- CI must pass on Go 1.24+.
- Tests must not require actual GPU hardware or a real Kubernetes cluster (use envtest).
- The Dockerfile must produce a distroless/static image with a non-root user.
- GitHub Actions workflows should cache Go modules for faster runs.
- After changes, run
go build ./...andgo vet ./....
Files to Read First
Makefile— existing targetsDockerfile— current buildinternal/controller/suite_test.go— test infrastructurego.mod— current dependencies