CI: improve code coverage report (#3029)

This commit is contained in:
mmetc 2024-05-24 10:20:47 +02:00 committed by GitHub
parent 20e44cd18a
commit 572b387fce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 146 additions and 1 deletions

11
.github/codecov-ignore-generated.sh vendored Executable file
View file

@ -0,0 +1,11 @@
#!/bin/bash
# Run this from the repository root:
#
# .github/codecov-ignore-generated.sh >> .github/codecov.yml
find . -name "*.go" | while read -r file; do
if head -n 1 "$file" | grep -q "Code generated by"; then
echo " - \"$file\""
fi
done

129
.github/codecov.yml vendored
View file

@ -8,3 +8,132 @@ coverage:
project:
default:
target: 0%
# if a directory is ignored, there is no way to un-ignore files like pkg/models/helpers.go
# so we make a full list, manually updated - but it could be generated right before running codecov
ignore:
- "./pkg/modelscapi/success_response.go"
- "./pkg/modelscapi/get_decisions_stream_response_deleted.go"
- "./pkg/modelscapi/login_request.go"
- "./pkg/modelscapi/get_decisions_stream_response_links.go"
- "./pkg/modelscapi/login_response.go"
- "./pkg/modelscapi/add_signals_request_item.go"
- "./pkg/modelscapi/blocklist_link.go"
- "./pkg/modelscapi/get_decisions_stream_response_deleted_item.go"
- "./pkg/modelscapi/decisions_sync_request.go"
- "./pkg/modelscapi/get_decisions_stream_response.go"
- "./pkg/modelscapi/metrics_request_machines_item.go"
- "./pkg/modelscapi/metrics_request.go"
- "./pkg/modelscapi/get_decisions_stream_response_new.go"
- "./pkg/modelscapi/add_signals_request_item_decisions_item.go"
- "./pkg/modelscapi/metrics_request_bouncers_item.go"
- "./pkg/modelscapi/decisions_sync_request_item_decisions_item.go"
- "./pkg/modelscapi/decisions_delete_request_item.go"
- "./pkg/modelscapi/get_decisions_stream_response_new_item.go"
- "./pkg/modelscapi/decisions_sync_request_item.go"
- "./pkg/modelscapi/add_signals_request.go"
- "./pkg/modelscapi/reset_password_request.go"
- "./pkg/modelscapi/add_signals_request_item_decisions.go"
- "./pkg/modelscapi/decisions_sync_request_item_source.go"
- "./pkg/modelscapi/error_response.go"
- "./pkg/modelscapi/decisions_delete_request.go"
- "./pkg/modelscapi/decisions_sync_request_item_decisions.go"
- "./pkg/modelscapi/enroll_request.go"
- "./pkg/modelscapi/register_request.go"
- "./pkg/modelscapi/add_signals_request_item_source.go"
- "./pkg/models/alert.go"
- "./pkg/models/metrics_bouncer_info.go"
- "./pkg/models/add_signals_request_item.go"
- "./pkg/models/add_signals_request_item_decisions_item.go"
- "./pkg/models/get_alerts_response.go"
- "./pkg/models/watcher_auth_request.go"
- "./pkg/models/add_alerts_request.go"
- "./pkg/models/event.go"
- "./pkg/models/decisions_delete_request_item.go"
- "./pkg/models/meta.go"
- "./pkg/models/delete_alerts_response.go"
- "./pkg/models/topx_response.go"
- "./pkg/models/add_signals_request.go"
- "./pkg/models/delete_decision_response.go"
- "./pkg/models/get_decisions_response.go"
- "./pkg/models/add_signals_request_item_decisions.go"
- "./pkg/models/source.go"
- "./pkg/models/decisions_stream_response.go"
- "./pkg/models/error_response.go"
- "./pkg/models/decision.go"
- "./pkg/models/decisions_delete_request.go"
- "./pkg/models/flush_decision_response.go"
- "./pkg/models/watcher_auth_response.go"
- "./pkg/models/watcher_registration_request.go"
- "./pkg/models/metrics_agent_info.go"
- "./pkg/models/add_signals_request_item_source.go"
- "./pkg/models/add_alerts_response.go"
- "./pkg/models/metrics.go"
- "./pkg/protobufs/notifier.pb.go"
- "./pkg/database/ent/machine_delete.go"
- "./pkg/database/ent/decision_query.go"
- "./pkg/database/ent/meta_query.go"
- "./pkg/database/ent/machine_create.go"
- "./pkg/database/ent/alert.go"
- "./pkg/database/ent/event_update.go"
- "./pkg/database/ent/alert_create.go"
- "./pkg/database/ent/alert_query.go"
- "./pkg/database/ent/lock_create.go"
- "./pkg/database/ent/bouncer_update.go"
- "./pkg/database/ent/meta_update.go"
- "./pkg/database/ent/decision_create.go"
- "./pkg/database/ent/configitem_update.go"
- "./pkg/database/ent/machine_query.go"
- "./pkg/database/ent/client.go"
- "./pkg/database/ent/predicate/predicate.go"
- "./pkg/database/ent/lock/where.go"
- "./pkg/database/ent/lock/lock.go"
- "./pkg/database/ent/mutation.go"
- "./pkg/database/ent/migrate/migrate.go"
- "./pkg/database/ent/migrate/schema.go"
- "./pkg/database/ent/configitem.go"
- "./pkg/database/ent/event.go"
- "./pkg/database/ent/event_query.go"
- "./pkg/database/ent/lock_update.go"
- "./pkg/database/ent/meta.go"
- "./pkg/database/ent/configitem_query.go"
- "./pkg/database/ent/bouncer.go"
- "./pkg/database/ent/alert_update.go"
- "./pkg/database/ent/meta/meta.go"
- "./pkg/database/ent/meta/where.go"
- "./pkg/database/ent/decision_update.go"
- "./pkg/database/ent/alert_delete.go"
- "./pkg/database/ent/lock.go"
- "./pkg/database/ent/runtime/runtime.go"
- "./pkg/database/ent/alert/alert.go"
- "./pkg/database/ent/alert/where.go"
- "./pkg/database/ent/runtime.go"
- "./pkg/database/ent/bouncer/bouncer.go"
- "./pkg/database/ent/bouncer/where.go"
- "./pkg/database/ent/hook/hook.go"
- "./pkg/database/ent/configitem_create.go"
- "./pkg/database/ent/configitem_delete.go"
- "./pkg/database/ent/tx.go"
- "./pkg/database/ent/decision.go"
- "./pkg/database/ent/lock_delete.go"
- "./pkg/database/ent/decision_delete.go"
- "./pkg/database/ent/machine/where.go"
- "./pkg/database/ent/machine/machine.go"
- "./pkg/database/ent/event_create.go"
- "./pkg/database/ent/decision/where.go"
- "./pkg/database/ent/decision/decision.go"
- "./pkg/database/ent/enttest/enttest.go"
- "./pkg/database/ent/lock_query.go"
- "./pkg/database/ent/bouncer_create.go"
- "./pkg/database/ent/event_delete.go"
- "./pkg/database/ent/bouncer_delete.go"
- "./pkg/database/ent/event/event.go"
- "./pkg/database/ent/event/where.go"
- "./pkg/database/ent/machine.go"
- "./pkg/database/ent/ent.go"
- "./pkg/database/ent/meta_create.go"
- "./pkg/database/ent/bouncer_query.go"
- "./pkg/database/ent/meta_delete.go"
- "./pkg/database/ent/machine_update.go"
- "./pkg/database/ent/configitem/configitem.go"
- "./pkg/database/ent/configitem/where.go"

View file

@ -2,6 +2,9 @@ name: (sub) Bats / sqlite + coverage
on:
workflow_call:
secrets:
CODECOV_TOKEN:
required: true
env:
TEST_COVERAGE: true
@ -76,7 +79,7 @@ jobs:
run: for file in $(find ./test/local/var/log -type f); do echo ">>>>> $file"; cat $file; echo; done
if: ${{ always() }}
- name: Upload crowdsec coverage to codecov
- name: Upload bats coverage to codecov
uses: codecov/codecov-action@v4
with:
files: ./coverage-bats.out

View file

@ -28,6 +28,8 @@ on:
jobs:
sqlite:
uses: ./.github/workflows/bats-sqlite-coverage.yml
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# Jobs for Postgres (and sometimes MySQL) can have failing tests on GitHub
# CI, but they pass when run on devs' machines or in the release checks. We