Skip to content

feat: Time for devcontainers!#34

Merged
sunib merged 30 commits intomainfrom
devcontainers
Oct 2, 2025
Merged

feat: Time for devcontainers!#34
sunib merged 30 commits intomainfrom
devcontainers

Conversation

@sunib
Copy link
Contributor

@sunib sunib commented Oct 1, 2025

This PR introduces a development environment setup and code quality enhancements

🐳 Development Container Architecture
Two-tier container strategy: CI base container (~800MB) for build/test, extended dev container (~1.2GB) with Docker/Kind for local development
Optimized CI pipeline: Separate jobs for building CI container, validating dev container, linting, testing, and e2e tests
Hybrid e2e testing: Kind cluster runs on GitHub Actions runner, tests execute in CI container
Local development: VS Code devcontainer with all tools pre-installed (Go 1.25, kubectl, helm, kustomize, golangci-lint, Kind)
📋 Key Changes
Infrastructure:

New .devcontainer/Dockerfile.ci - CI-focused base image
New .devcontainer/Dockerfile - Full dev environment with Docker support
Restructured .github/workflows/ci.yml - Modular pipeline with container validation
Simplified Makefile - Tools pre-installed in containers, graceful Kind handling
Code Quality:

Enhanced .golangci.yml - Comprehensive "golden config" with 60+ linters
Fixed 347 linting issues through code improvements and proper exclusions
Major refactorings: GitRepoConfig controller split into focused methods (reduced complexity 26→<10)
Added internal/controller/constants.go - Centralized timing/retry constants
Testing:

Converted assertions to require.NoError for setup checks
Replaced os.MkdirTemp with t.TempDir() for automatic cleanup
All tests passing with >90% coverage
Documentation:

New docs/COMPLETE_SOLUTION.md - Architecture overview
New docs/E2E_CI_FIX.md - E2E testing solution
New docs/LINTING_CONFIGURATION_ADJUSTMENTS.md - Code quality improvements
📊 Impact
+2,429/-667 lines across 44 files
30 commits addressing infrastructure, code quality, and documentation
Zero linting issues (down from 347)
All tests passing (unit + e2e)
This PR establishes a production-ready development workflow with consistent tooling, improved code quality, and comprehensive CI/CD validation.

@sunib sunib merged commit 09b1936 into main Oct 2, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant