- Add cross-platform sed detection (macOS vs Linux)
- Fixes Unit coverage badge URL typo issue
- Ensures all badge update scripts work in Docker containers
This completes the cross-platform compatibility for all badge scripts.
- Detect macOS vs Linux sed syntax automatically
- Use appropriate sed command for each platform
- Fixes workflow failure in Docker container
macOS: sed -i '' (BSD sed)
Linux: sed -i (GNU sed)
- Fix badge URLs and remove duplicates
- Add update-all-badges.sh script for single commit updates
- Update CI/CD workflow to use environment variables
- Remove complex sequential commit logic
- Follow KISS principle with simple env var approach
- Fix step pattern escaping in pkg/bdd/steps/steps.go:80
- Update CI/CD workflow to use run-bdd-tests.sh script
- Enhance run-bdd-tests.sh for both local and CI environments
- Add strict validation for undefined/pending/skipped steps
- Update BDD testing documentation with pattern requirements
The CI/CD pipeline now properly validates BDD tests and fails on any
undefined, pending, or skipped steps. All 22 BDD scenarios are passing
with correct step pattern registration.
- Detect which hash command is available
- Fix script compatibility across platforms
- Maintain same functionality
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Use localhost for native execution (PostgreSQL port mapping)
- Use dance-lessons-coach-postgres for Docker container execution
- Set appropriate environment variables for each execution mode
- Fix container-to-container communication
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Simplify getPostgresHost() to always use localhost by default
- Use DLC_DATABASE_HOST=localhost for all local execution
- Container name only needed when running INSIDE Docker containers
- Fix native execution PostgreSQL connection issues
- Ensure BDD tests connect to localhost:5432 (mapped port)
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Use docker run --rm instead of docker compose run
- More explicit container cleanup with --rm flag
- Direct volume mounting and network configuration
- Maintain same functionality with cleaner approach
- Better matches CI/CD workflow style
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Enhance getPostgresHost() to detect Docker vs native execution
- Use localhost for native execution (PostgreSQL port mapping)
- Use container name for Docker execution
- Fix local CI/CD script to set correct DLC_DATABASE_HOST
- Ensure BDD tests can connect in both Docker and native modes
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add getPostgresHost() function to use DLC_DATABASE_HOST env var
- Default to dance-lessons-coach-postgres container name
- Update local CI/CD script to set proper DLC_* environment variables
- Fix Docker Compose test execution to pass correct database config
- Ensure BDD tests can connect to PostgreSQL in both Docker and native modes
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Remove unnecessary go mod tidy execution when using Docker cache
- Dependencies are already pre-installed in the cache image
- Only run go mod tidy when not using cache (native execution)
- This leverages the true purpose of the Docker build cache
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add dependency hash calculation matching CI workflow
- Add Docker cache detection and usage
- Add PostgreSQL service with Docker Compose
- Execute commands in Docker Compose containers when cache available
- Update test summary to reflect new workflow matching
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add DROP DATABASE IF EXISTS before creating BDD test database
- Prevents errors when database already exists from previous runs
- Ensures clean test environment for each run
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add swag fmt to git pre-commit hook and CI/CD pipeline
- Create comprehensive CONTRIBUTING.md guide with AI section
- Update ADR-0013 with swag fmt documentation
- Fix swagger generation to include all endpoints
- Improve local testing scripts and workflows
- Update Dockerfile for better swagger handling
- Fix CI/CD workflow file references
Fix three critical CI issues:
1. SWAG TOOL: Install swag before go generate
- Adds 'Install swag' step to build-test job
- Prevents 'command not found' errors
- Ensures swagger docs can be generated
2. GO VET REDUNDANCY: Remove duplicate go vet
- Removes go vet from lint-format job
- Keeps go vet only in build-test job
- Reduces CI execution time
3. WORKFLOW VALIDATION: Fix yamllint path
- Updates validate-workflow.sh to use absolute paths
- Fixes .yamllint.yaml file not found error
- Makes path resolution more robust
These fixes address the root causes of:
- Job 350 failure (missing swag)
- Redundant validation (duplicate go vet)
- Workflow validation failures (wrong paths)
Tested locally and ready for CI.
- Rename ci-cd.yaml to go-ci-cd.yaml for clarity
- Add dockerimage.yaml workflow for Docker builds
- Create Dockerfile for production deployment
- Add comprehensive CI/CD documentation
- Create contributor-quickstart.sh for easy validation
- Update all scripts to handle both workflow files
- Fix event triggers to run on all relevant pushes
- Remove redundant YAML syntax validation
- Improve workflow validation for Arcodange conventions
BREAKING CHANGE: ci-cd.yaml renamed to go-ci-cd.yaml
See scripts/cicd/README.md for complete documentation.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Designed trunk-based development workflow with branch protection
- Added workflow validation job to prevent main branch breaks
- Integrated act (GitHub Actions runner) for local Gitea workflow testing
- Created unified CI/CD script interface (scripts/cicd.sh)
- Added YAML lint configuration with practical limits (400 chars)
- Organized all CI/CD scripts under scripts/cicd/ directory
- Confirmed Gitea/GitHub Actions compatibility via local testing
- Updated ADR 0017 with implementation details and test results
- Enhanced documentation with local development workflow
See ADR-0017 for complete trunk-based development workflow documentation.
See ADR-0016 for CI/CD pipeline design.
- Add new CLI structure in cmd/cli/
- Implement version, server, and greet commands
- Update build script to compile new CLI binary
- Add Cobra dependency to go.mod
- Update ADR 0015 to reflect implementation status
- Update README and AGENTS.md with CLI usage
- Maintain backward compatibility with existing binaries
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Finalize BDD testing framework with:
- Unified step definitions using StepContext struct
- Proper server verification in theServerIsRunning step
- Robust JSON response handling with escaping and newline trimming
- Updated documentation reflecting current implementation
- Test validation script to ensure test quality
- All tests passing with proper black box testing
Key files updated:
- pkg/bdd/steps/steps.go: Unified step definitions
- pkg/bdd/testserver/client.go: Robust response validation
- pkg/bdd/README.md: Godog pattern guide
- doc/BDD_GUIDE.md: Updated usage guide
- adr/0008-bdd-testing.md: Updated ADR with current approach
- scripts/run-bdd-tests.sh: Test validation script
The BDD framework is now production-ready with comprehensive
documentation and proper testing practices.
- Add scripts/build.sh to compile binaries into bin/ directory
- Move all zerolog setup logic from cmd/server/main.go to pkg/config
- Add log level configuration support (trace, debug, info, warn, error, fatal, panic)
- Simplify cmd/server/main.go from 57 to 27 lines (53% reduction)
- Update .gitignore to use bin/ directory instead of individual files
- Document build process and bin directory in AGENTS.md
- Maintain backward compatibility with all existing functionality