name: CI Pipeline on: push: branches: - main # Запуск только при пуше в main jobs: lint: name: 1. Lint (Static Analysis) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install cppcheck run: | sudo apt-get update sudo apt-get install -y cppcheck - name: Run cppcheck run: | cppcheck --enable=all -I include/ --suppress=missingIncludeSystem src/ tests/ --error-exitcode=1 test: name: 2. Test (Unit Tests) runs-on: ubuntu-latest needs: lint # Запускается только если Lint прошел успешно steps: - uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y cmake build-essential - name: Build and Test run: | cmake -B build cmake --build build cd build && ctest --output-on-failure build: name: 3. Build (Release) runs-on: ubuntu-latest needs: test # Запускается только если Test прошел успешно steps: - uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y cmake build-essential - name: Build Release run: | cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build