commit 2cc6b72b6b767fba83c79c644bb706e94745fbf8 Author: SILCHENKO Date: Sun May 24 18:06:03 2026 +0300 init commit diff --git a/.github/workflow/ci.yaml b/.github/workflow/ci.yaml new file mode 100644 index 0000000..bc62a27 --- /dev/null +++ b/.github/workflow/ci.yaml @@ -0,0 +1,36 @@ +name: C++ CI/CD Pipeline + +on: + push: + branches: [ "main", "master" ] + pull_request: + branches: [ "main", "master" ] + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install -y cmake cppcheck build-essential + + - name: Run Static Analysis (Cppcheck) + run: | + cppcheck --enable=all --language=c++ --error-exitcode=1 main.cpp test.cpp + # Флаг --error-exitcode=1 остановит пайплайн, если найдутся критические ошибки + + - name: Configure CMake + run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release + + - name: Build Project + run: cmake --build build --config Release + + - name: Run Tests (CTest) + run: | + cd build + ctest --output-on-failure diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..4d44e5c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.10) +project(HelloWorldProject VERSION 1.0 LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# Главная программа +add_executable(hello_world main.cpp) + +# Включение поддержки тестирования +enable_testing() + +# Тестовый исполняемый файл и регистрация в CTest +add_executable(run_tests test.cpp) +add_test(NAME SimpleTest COMMAND run_tests) diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..7e5bd0e --- /dev/null +++ b/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + std::cout << "Hello, World!" << std::endl; + return 0; +} diff --git a/test.cpp b/test.cpp new file mode 100644 index 0000000..a8fcab4 --- /dev/null +++ b/test.cpp @@ -0,0 +1,7 @@ +#include + +int main() { + // Тест проходит успешно, если возвращает 0 + std::cout << "Running simple test..." << std::endl; + return 0; +}