This document describes the complete GitHub Actions CI/CD pipeline for the Cortex memory tiering system.
The Cortex project includes comprehensive automated testing and deployment workflows that support cross-platform development on Linux, Windows, and macOS.
Triggers:
- Push to any branch
- Pull requests
- Manual dispatch
Platforms: Linux, Windows, macOS
Features:
- Cross-platform builds using CMake
- Kernel module compilation (Linux)
- Native benchmark compilation (all platforms)
- Unit testing
- Cross-platform analysis
- Artifact upload
Key Steps:
- Platform-specific dependency installation
- CMake configuration and build
- Test execution
- Cross-platform result analysis
- Build artifact archival
Triggers:
- Git tags matching
v*.*.*pattern - Manual dispatch with version input
Features:
- Automated GitHub releases
- Cross-platform binary packaging
- Source code archival
- Release notes generation
Artifacts:
cortex-linux-x64.tar.gz- Linux binariescortex-windows-x64.zip- Windows binariescortex-macos-x64.tar.gz- macOS binariescortex-source.tar.gz- Source code archive
Triggers:
- Daily schedule (02:00 UTC)
- Manual dispatch with configurable parameters
Parameters:
platforms: Comma-separated list (linux,windows,macos)benchmark_size: Memory size in MB (default: 512)iterations: Number of test iterations (default: 10)
Features:
- Cross-platform performance benchmarks
- Statistical analysis and reporting
- Performance trend tracking
- Automated PR comments with results
Jobs:
performance-linux: Simulated kernel module performanceperformance-windows: Native WinBench executionperformance-macos: Native macOS benchmarkperformance-analysis: Cross-platform comparison
- Environment: Ubuntu Latest
- Build System: CMake + GCC
- Components: Helios kernel module, examples, tools
- Testing: Simulated performance (actual kernel module requires root)
- Artifacts: ELF binaries, analysis results
- Environment: Windows Latest
- Build System: CMake + MSVC
- Components: WinBench native benchmark, WinViz GUI
- Testing: Full benchmark execution
- Artifacts: PE executables, performance data
- Environment: macOS Latest
- Build System: CMake + Clang
- Components: Native benchmark with Mach APIs
- Testing: Full benchmark execution
- Artifacts: Mach-O binaries, performance data
Generates comprehensive CI build summaries with platform status, build artifacts, and cross-platform comparisons.
Simulates Linux kernel module performance for CI environments where actual kernel modules cannot be loaded.
Analyzes cross-platform performance benchmark results and generates unified reports.
BUILD_TYPE: Release/Debug build configurationBENCHMARK_SIZE: Memory benchmark size in MBITERATIONS: Number of performance test iterations
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
include:
- os: ubuntu-latest
platform: linux
- os: windows-latest
platform: windows
- os: macos-latest
platform: macos- Cross-platform binaries
- Analysis results
- Test outputs
- Historical performance data
- Cross-platform comparisons
- Statistical analysis
- Tagged release binaries
- Source code archives
- Release documentation
# Trigger CI workflow for specific platforms
gh workflow run ci.yml -f platforms="linux,windows"# Run performance tests with custom configuration
gh workflow run performance.yml \
-f platforms="linux,macos" \
-f benchmark_size="1024" \
-f iterations="20"# Tag-based release
git tag v1.0.0
git push origin v1.0.0
# Manual release
gh workflow run release.yml -f version="v1.0.1-rc1"Monitor workflow execution in the GitHub Actions tab:
- Build status and logs
- Artifact downloads
- Performance trends
-
YAML Syntax Errors
- Validate YAML with
yamllint - Check heredoc and multiline string formatting
- Validate YAML with
-
Platform Build Failures
- Review platform-specific dependency installation
- Check CMake configuration flags
-
Performance Variations
- Compare against historical baselines
- Account for CI runner performance variance
# Check workflow syntax
yamllint .github/workflows/*.yml
# Test local build
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
# Validate analysis scripts
python3 .github/scripts/perf_analysis.py- All workflows use pinned action versions (
@v4) - No sensitive data in public repositories
- Limited token permissions for automated tasks
- Secure artifact handling and retention policies
-
Performance Regression Detection
- Automated baseline comparisons
- Alert on significant performance degradation
-
Extended Platform Support
- ARM64 architectures
- Additional Linux distributions
-
Advanced Analytics
- Performance trend visualization
- Automated optimization recommendations
-
Integration Testing
- Cross-platform compatibility validation
- End-to-end system testing
- Update action versions quarterly
- Review and clean old artifacts
- Update platform dependencies
- Validate performance baselines
- CI/CD Issues: DevOps team
- Performance Analysis: Performance engineering team
- Platform-specific builds: Platform maintainers
This CI/CD system provides a robust foundation for the Cortex project's development, testing, and deployment needs across all supported platforms.