Add C++ compilation support to production runtime#28
Merged
NhanLuongBGSV merged 17 commits intoeclipse-autowrx:cpp-compilerfrom Aug 18, 2025
Merged
Add C++ compilation support to production runtime#28NhanLuongBGSV merged 17 commits intoeclipse-autowrx:cpp-compilerfrom
NhanLuongBGSV merged 17 commits intoeclipse-autowrx:cpp-compilerfrom
Conversation
- Implement array handling for all VSS datatypes in DataPoint class - Add JSON serialization patches for protobuf array compatibility - Fix boolean array conversion bug in mock service - Update syncer with array-to-list conversion for JSON transmission - Enable Vehicle.Body.Horn.HornControl.set([command, priority]) functionality Addresses issue eclipse-autowrx#26 - VSS arrays blocking actuator control use cases
Add VSS Array Support for Actuator Control
Features Added: - C++ compilation WebSocket endpoint (compile_cpp) with real-time streaming - Multi-file project support with CMake integration - Automatic header resolution and dependency management - Full compatibility with existing Python deployment system Testing Suite: - Incremental learning guide in test/ folder (basic → multi-file → complex) - 01-basic: Hello World examples for learning endpoint basics - 02-multi-file: Multi-directory C++ projects with cross-file dependencies - 03-complex: Automotive algorithms (collision detection, sensor processing) - scripts: Ready-to-use frontend integration examples CI/CD & Automation: - GitHub Actions workflow for automated testing - Comprehensive test suite with 6 test categories - Shell script runner for local and CI environments - Performance benchmarks and error handling validation - Docker containerization with simplified Dockerfile.kitmanager Documentation: - Complete WebSocket API documentation in doc/cpp-compilation-endpoints.md - Frontend integration guides with copy-paste examples - Testing progression from simple to complex automotive use cases Production Ready: - Real-time compilation progress streaming - Executable generation and optional execution - Professional CMake build system with C++17 support - Comprehensive error handling and logging - Container environment detection and path management
- Commented out trigger events to disable automatic execution - Workflow YAML preserved for future manual enabling - Can be re-enabled by uncommenting the 'on:' section
…n backward compatibility - Migrate from test Dockerfile.kitmanager to production-ready main Dockerfile - Add Node.js and C++ compilation tools (nodejs, npm, cmake, gcc, g++) to production image - Fix Node.js syntax compatibility issues (remove optional chaining for older Node.js versions) - Update environment path detection for container operations in Kit-Manager - Preserve all original Python deployment functionality and services - Maintain full backward compatibility with existing SDV Runtime features - Verify all original WebSocket and HTTP endpoints working correctly - Confirm KUKSA databroker, VSS, and mock services operational - Comprehensive testing: 6/6 C++ compilation tests passing (100% success rate) - Production validation: All main branch functionality intact and verified
- Add manual trigger workflow (requires [build-cpp] or [cpp-test] in commit message) - Add automatic build workflow for every commit and PR - Distinguish packages with 'cpp-test' naming convention - Support both push to registry and PR artifact uploads - Include comprehensive build summaries and metadata
- Remove conditional build triggers ([build-cpp] tag no longer needed) - Build automatically on every commit to cpp branches - Simplify workflow documentation to reflect always-build behavior - Keep PR artifact generation and comprehensive test package naming
…tion - Add required permissions (contents: read, packages: write, id-token: write) - Add explicit submodule verification step - Add token to checkout for proper authentication - Add error handling for missing submodules - Apply fixes to both workflow files
- Fix Auto Build C++ Test Packages workflow - Update actions/upload-artifact from v3 to v4 - Resolves GitHub Actions deprecation error
- Remove template variables that can be empty ({{branch}})
- Use simpler, more reliable tag patterns
- Fix PR builds generating invalid tags like ':-latest'
- Use proper ref and sha tag types without templates
- Remove docker image test step from cpp-test-auto-build.yml workflow - Workflows now only build and publish Docker images without testing - Simplifies build process for faster CI/CD pipeline
- Create /home/dev/data/output directory with 777 permissions in Dockerfile - Resolves EACCES permission denied errors when copying compiled executables to host mount - Ensures C++ compilation artifacts are properly saved to persistent storage
- Remove duplicate mkdir command that was causing build failure - Directory creation and permissions are handled by existing commands at end of Dockerfile - Resolves Docker build error: exit code 1 during directory creation
- Remove type=sha tags from both C++ test workflows
- Keep only branch-based and latest tags for cleaner package management
- Reduces registry clutter during active development
- Tags now created: cpp-test-{branch} and cpp-test-latest only
- Eliminate duplicate workflow that was running on same triggers - Keep only build-cpp-test-package.yml for C++ test builds - Reduces build time and prevents duplicate Docker image creation - Now only 1 workflow will run per commit instead of 2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #53
Add C++ compilation support to production runtime environment alongside existing Python capabilities.