Skip to content

Implement Docker and CI/CD with norminette integration for automated testing - #25

Draft
vasco-castro with Copilot wants to merge 2 commits into
masterfrom
copilot/fix-24
Draft

Implement Docker and CI/CD with norminette integration for automated testing#25
vasco-castro with Copilot wants to merge 2 commits into
masterfrom
copilot/fix-24

Conversation

Copilot AI commented Aug 6, 2025

Copy link
Copy Markdown

This PR implements comprehensive Docker containerization and GitHub Actions CI/CD pipeline for the libV repository, enabling automated code quality checks and testing on every commit.

🐳 Docker Implementation

Added a complete Docker setup with:

  • Ubuntu 22.04 base image with build-essential, gcc, and make
  • Norminette 3.3.59 installed with proper SSL certificate handling
  • Optimized .dockerignore to exclude build artifacts and improve build performance
  • Verified library compilation, test execution, and code style checking in containerized environment

🔄 CI/CD Pipeline

Implemented GitHub Actions workflow that automatically runs on push and pull requests to main/master branches:

Two-Job Pipeline:

  1. lint-and-test: Native Ubuntu environment

    • Installs and runs norminette for 42 coding standards compliance
    • Builds library and test executable
    • Executes comprehensive test suite
    • Reports style issues without failing the build
  2. docker-build: Container verification

    • Builds Docker image from scratch
    • Runs full test suite in containerized environment
    • Validates norminette functionality in Docker

🧪 Testing Infrastructure

Created ci_test.sh - a comprehensive automated test script that:

  • Verifies library compilation
  • Builds and validates test executable
  • Tests basic library functionality with timeout handling
  • Provides clear success/failure reporting

📚 Documentation

Added DOCKER_CI.md with complete setup instructions, usage examples, and pipeline documentation for easy onboarding and maintenance.

The implementation maintains full backward compatibility while adding robust automation for code quality assurance and continuous integration testing.

Fixes #24.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: vasco-castro <61548183+vasco-castro@users.noreply.github.com>
Copilot AI changed the title [WIP] Implement Docker and CI/CD Implement Docker and CI/CD with norminette integration for automated testing Aug 6, 2025
Copilot AI requested a review from vasco-castro August 6, 2025 09:53

@vasco-castro vasco-castro left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's test it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants