CI/CD Pipeline
Continuous integration and deployment powered by CircleCI.
Overview
The pipeline automates testing, building, and deployment across multiple platforms. It ensures code quality, runs comprehensive tests, and deploys documentation.
Workflows
Main CI Workflow
Triggered on pushes to main branch.
- Code Quality: Linting, pre-commit hooks, CodeQL analysis
- Python Tests: Multiple versions (3.9-3.12)
- Build Linux CUDA: Build and test with CUDA support
- Build Linux CPU: CPU-only build and test
- Build Windows: Build with OpenCV
- Code Coverage: Generate and upload reports
- Benchmark: Run performance benchmarks on macOS
- Docker Build: Build and push CPU/CUDA images
- Security Scan: Scan images for vulnerabilities
Nightly Workflow
Runs daily at 2 AM UTC. Includes all jobs from main CI for comprehensive testing.
Supported Platforms
- Linux: CUDA and CPU builds with GCC/Clang
- macOS: Metal builds with Xcode
- Windows: CPU builds with MSVC
- Docker: Multi-architecture images for CPU and GPU
Key Features
- Branch filtering: CI runs only on main branch
- Caching: Build dependencies cached for faster runs
- Artifacts: Test results, builds, coverage stored
- Security: Automated vulnerability scanning
- Documentation: MkDocs deployed to GitHub Pages
Configuration
The pipeline is configured in .circleci/config.yml:
- Orbs: Reusable packages for Python, Docker, Node.js, AWS
- Executors: Pre-configured environments per platform
- Commands: Reusable build steps
- Jobs: Testing, building, deployment tasks
- Workflows: Job orchestration with dependencies
Getting Started
- Ensure your branch is based on
main - Push changes to trigger the CI pipeline
- Monitor the CircleCI dashboard for build status
- Address any failing checks before merging