name: Tests on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y build-essential sqlite3 libsqlite3-dev valgrind - name: Build library run: make build-lib - name: Run unit tests run: make test - name: Run memory check run: | echo "Memory checking (if tools available)..." which valgrind && make memcheck || echo "valgrind not available" - name: Generate coverage run: | echo "Coverage generation (if tools available)..." which gcov && make coverage || echo "gcov not available" - name: Upload coverage if: success() uses: codecov/codecov-action@v3 with: files: ./coverage.info fail_ci_if_error: false