From 07231f428a8bec618acccb7ebf06f156a0d9f63a Mon Sep 17 00:00:00 2001 From: Maciej Mensfeld Date: Wed, 22 Jan 2025 16:28:32 +0100 Subject: [PATCH] Add post-execution kafka warnings checks (#556) * Add post-execution kafka warnings checks * remarks --- .github/workflows/ci.yml | 3 +++ bin/verify_kafka_warnings | 31 +++++++++++++++++++++++++++++++ waterdrop.gemspec | 2 +- 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100755 bin/verify_kafka_warnings diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6c83af..2ff0006 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,6 +63,9 @@ jobs: GITHUB_COVERAGE: ${{matrix.coverage}} run: bundle exec rspec + - name: Check Kafka logs for unexpected warnings + run: bin/verify_kafka_warnings + diffend: runs-on: ubuntu-latest strategy: diff --git a/bin/verify_kafka_warnings b/bin/verify_kafka_warnings new file mode 100755 index 0000000..36895a2 --- /dev/null +++ b/bin/verify_kafka_warnings @@ -0,0 +1,31 @@ +#!/bin/bash + +# Checks Kafka logs for unsupported warning patterns +# Only specified warnings are allowed, all others should trigger failure + +allowed_patterns=( + "Performing controller activation" + "registered with feature metadata.version" +) + +# Get all warnings +warnings=$(docker logs kafka | grep WARN) +exit_code=0 + +while IFS= read -r line; do + allowed=0 + for pattern in "${allowed_patterns[@]}"; do + if echo "$line" | grep -q "$pattern"; then + allowed=1 + break + fi + done + + if [ $allowed -eq 0 ]; then + echo "Unexpected warning found:" + echo "$line" + exit_code=1 + fi +done <<< "$warnings" + +exit $exit_code diff --git a/waterdrop.gemspec b/waterdrop.gemspec index 8707a10..14d86b0 100644 --- a/waterdrop.gemspec +++ b/waterdrop.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |spec| spec.cert_chain = %w[certs/cert.pem] spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) } - spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } + spec.executables = [] spec.require_paths = %w[lib] spec.metadata = {