Files
goplt/docs/content/adr/0010-ci-cd-platform.md

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:

  1. GitHub Actions - Native GitHub integration
  2. GitLab CI - If using GitLab
  3. Jenkins - Self-hosted option
  4. 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@v5 for Go setup
  • Configure caching for Go modules
  • Run: linting, unit tests, integration tests, build
  • Use actions/cache@v4 for module caching
  • Add build matrix if needed for multiple Go versions (future)