Skip to content

Commit

Permalink
Merge pull request #6138 from RanabirChakraborty/WFCORE-6955
Browse files Browse the repository at this point in the history
WFCORE-6955 Add a CI job to check for non-i18n INFO/WARN/ERROR logging
  • Loading branch information
yersan authored Oct 1, 2024
2 parents 63d052d + 87df860 commit 8dafac2
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/check_logging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Check non-i18n logging

on:
pull_request:
branches:
- main
- '*.x'

jobs:
check-logging:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Run logging check
env:
GITHUB_BASE_REF: '${{ github.base_ref }}'
shell: bash
run: bash check_logging.sh
58 changes: 58 additions & 0 deletions check_logging.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/bash

BASE_BRANCH="${GITHUB_BASE_REF:-main}"
DIFF=$(git diff origin/"$BASE_BRANCH"...HEAD || true)

if [ -z "$DIFF" ]; then
echo "No diff found to analyze."
exit 0
fi

PATTERNS=(
".info("
".infof("
".warn("
".warnf("
".error("
".errorf("
".fatal("
".fatalf("
"System.out.print"
"System.err.print"
".printStackTrace"
)

ERRORS=""
CURRENT_FILE=""

while IFS= read -r line; do
# Update the current file if a new diff starts
if [[ "$line" =~ ^diff\ --git\ a\/.*\ b\/.* ]]; then
CURRENT_FILE=$(echo "$line" | awk '{print $3}' | sed 's/^a\///')
fi

if [[ "$line" =~ ^\+[^+] ]]; then
# Ignore lines in the test directories
if [[ "$CURRENT_FILE" != *"src/test/"* && "$CURRENT_FILE" != *"testsuite/"* && "$CURRENT_FILE" != *"check_logging.sh"* ]]; then
# Check for any of the patterns, ensuring "//" doesn't precede them
for pattern in "${PATTERNS[@]}"; do
if [[ "$line" == *"$pattern"* ]]; then
# Ensure the pattern is not commented out with "//"
if [[ "$line" != *"//"*"$pattern"* ]]; then
# Capture the error line and its context
ERRORS+="$line\nFile: $CURRENT_FILE\n\n"
fi
fi
done
fi
fi
done <<< "$DIFF"

if [ -n "$ERRORS" ]; then
echo -e "Logging statements found that should be internationalized or converted to a lower log level:\n"
echo -e "$ERRORS"
exit 1
else
echo "No problematic logging statements found."
exit 0
fi

0 comments on commit 8dafac2

Please sign in to comment.