-
Notifications
You must be signed in to change notification settings - Fork 0
feat(ci): Add complete CI/CD pipeline with GitHub Actions #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
…peline Phase 0 - Research completed: - Evaluated GitHub Actions vs alternatives for C projects - Researched norminette integration best practices - Analyzed Conventional Commits for issue tracking - Designed branch strategy (GitHub Flow variant) - Planned automated release management - Documented issue/PR template requirements - Investigated MinilibX dependency handling in CI - Defined test automation strategy Phase 1 - Design completed: - Created data model for CI/CD entities (workflows, jobs, steps) - Defined workflow contracts (ci.yml, release.yml, pr-validation.yml) - Documented issue/PR template structures - Specified commit message format (Conventional Commits) - Created quickstart guide for team onboarding - Updated agent context with CI/CD technologies Constitution Check: ALL GATES PASSED - Norminette compliance enforced via CI - Unit testing automated in pipeline - Build verification on every PR - Templates encourage readable documentation - Bilingual support in templates Refs: #1
- Add OS detection using uname -s - Configure minilibx-linux for Linux with X11 libraries - Configure minilibx-macos for Darwin with Apple frameworks - Resolve linking errors on macOS Fixes linking issue where hardcoded Linux paths prevented compilation on macOS systems.
Main CI Workflow: - Add norminette validation job with Python pip installation - Add Linux build job with X11 dependencies - Add macOS build job with native frameworks - Add test jobs for both platforms with scene file parsing - Upload build artifacts with 7-day retention PR Validation Workflow: - Add commit message validation (Conventional Commits) - Add branch name validation (feature/fix/NNN-format) - Add PR template compliance checking - Add sensitive file detection with auto-labeling Release Workflow: - Add automated release creation on version tags - Add multi-platform binary builds (Linux + macOS) - Add release notes generation from commits - Add binary artifact attachment to releases Templates: - Add bug report template with environment details - Add feature request template with use cases - Add documentation template with bilingual support - Add PR template with constitution checklist Scripts: - Add commit format validator (check-commit-format.sh) - Add issue reference checker (check-issue-reference.sh) - Add CI environment setup script (setup-ci-environment.sh) Documentation: - Add comprehensive CI/CD documentation (docs/CI_CD.md) - Include developer guide and troubleshooting - Document workflow details and best practices - Provide reviewer checklist and maintenance guide Features: - Cross-platform support (Linux + macOS) - Automated code quality checks (norminette) - Convention enforcement (Conventional Commits) - Security scanning (secrets detection) - One-command releases with semantic versioning - Artifact management and distribution Constitution Compliance: - Git branch strategy enforced via validation - Structured logging in logs/ directory - Build verification in CI jobs - Conventional commits required - Project-centric documentation (no 42 references)
- Add complete minilibx-macos source code - Required for macOS builds in CI/CD pipeline - Enables release workflow to build macOS binaries - Library used by Makefile OS detection
- Add setup step to clone minilibx-linux if not present - Fixes release workflow Linux build failures - Fixes CI workflow Linux build failures - Uses official 42Paris/minilibx-linux repository - Ensures both CI and release workflows have required libraries
…requirement - Add Principle VI: GitHub Issue Tracking (NON-NEGOTIABLE) - Require issue numbers in commit titles: [#issue] format - Ensure all development work is traceable to GitHub issues - Version bump from v1.0.0 to v1.1.0 (minor: new principle added)
…compliance - Update code quality statistics (21/21 files passing) - Replace Known Issues section with Quality Assurance - Add CI/CD pipeline achievement - Reflect all norminette violations fixed
Owner
Author
Status Update✅ *All norminette violations fixedecho BEGIN___COMMAND_OUTPUT_MARKER ; cd /home/yoshin/work/miniRT_final && gh pr edit 2 --add-assignee @me 2>&1 ; EC=0 ; echo ___BEGIN___COMMAND_DONE_MARKER___0 ; } Latest commits:
Current Status:
The previous CI failures were from earlier commits. The latest code now passes all norminette checks. Ready to re-run CI. |
Complete verification of release requirements: - 100% norminette compliance (21/21 files) - Successful build on Linux - CI/CD pipeline fully implemented - Constitution v1.1.0 compliance - All documentation updated Ready for production release.
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.
Description
This PR implements a comprehensive CI/CD pipeline for the miniRT project using GitHub Actions.
Related Issue
Closes #N/A (infrastructure improvement)
Type of Change
Changes
Testing
Test Environment
Test Steps
Test Results
Screenshots
CI workflow running: https://github.com/gdtknight/miniRT_final/actions/runs/20291100660
Checklist
Constitution Compliance
Performance Impact
This is infrastructure-only change - no impact on runtime performance.
CI workflows run in GitHub Actions (free tier sufficient).
Additional Notes
Known Issues
Next Steps