1.3 KiB
1.3 KiB
ADR-0010: CI/CD Platform
Status
Accepted
Context
The platform needs a CI/CD system for:
- Automated testing on pull requests
- Code quality checks (linting, formatting)
- Building binaries and Docker images
- Publishing artifacts
- Running integration tests
Options considered:
- GitHub Actions - Native GitHub integration
- GitLab CI - If using GitLab
- Jenkins - Self-hosted option
- CircleCI - Cloud-based CI/CD
Decision
Use GitHub Actions for CI/CD pipeline.
Rationale:
- Native integration with GitHub repositories
- Free for public repos, reasonable for private
- Rich ecosystem of actions
- Easy to configure with YAML
- Good documentation and community support
- Recommended in playbook-golang.md
Consequences
Positive
- Easy setup and configuration
- Good GitHub integration
- Large action marketplace
- Free for public repositories
Negative
- Tied to GitHub (if migrating Git hosts, need to migrate CI)
- Limited customization compared to self-hosted solutions
Implementation Notes
- Create
.github/workflows/ci.yml - Use
actions/setup-go@v5for Go setup - Configure caching for Go modules
- Run: linting, unit tests, integration tests, build
- Use
actions/cache@v4for module caching - Add build matrix if needed for multiple Go versions (future)