CI/CD Actions
1. Compilation on Windows (MSVC)
1. Compilation on Windows (MSVC)
The CI pipeline includes an action for compilation on Windows using MSVC (Microsoft Visual C++).
Key Steps:
- Install dependencies with vcpkg.
- Build the project using CMake and MSVC.
2. Compilation and Testing on Ubuntu (GTest)
2. Compilation and Testing on Ubuntu (GTest)
On Ubuntu, the pipeline compiles the project and runs unit tests written with Google Test.
Key Steps:
- Install dependencies using vcpkg.
- Build the project with GCC/Clang.
- Run unit tests using GTest.
3. Mirroring to Epitech Repository
3. Mirroring to Epitech Repository
To comply with Epitech requirements, an action mirrors the repository to the Epitech GitLab server.
Key Steps:
- Push updates to the remote Epitech repository.
4. Code Linting and Formatting
4. Code Linting and Formatting
The pipeline ensures code consistency using cpplint and Clang-Format (Google style guide). If formatting errors are detected, a commit with corrected code is pushed automatically.
Linter Configuration:
- cpplint: Checks for style and structure issues.
- Clang-Format: Applies automatic formatting.
Branch Ruleset
To ensure code quality and prevent unapproved changes, the following ruleset is enforced:- No Direct Pushes to Main: All changes must be submitted through a Pull Request (PR).
- Approval Requirements:
- A minimum of two approvals is required to merge a Pull Request.
- CI/CD Validation:
- All CI/CD actions (compilation, testing, linting) must pass successfully before merging.
- Automatic Checks: Code linting and formatting ensure that all committed code adheres to the Google C++ Style Guide.