Files
daily-notification-plugin/scripts/check-version-consistency.sh
Matthew Raymer d3c692bb72 feat(ci): Add version consistency check to verify script
Created scripts/check-version-consistency.sh:
- Checks package.json version (source of truth)
- Validates README.md and src/definitions.ts versions
- Warns on other file version mismatches
- Integrated into scripts/verify.sh

Removed tracked .gradle/ files from git.

Verification:
- Version check script works 
- Integrated into verify.sh 
2025-12-23 07:55:26 +00:00

67 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Check version consistency across package.json and documentation files
# Exit code 0 if consistent, 1 if inconsistent
set -euo pipefail
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$PROJECT_ROOT"
# Get version from package.json (source of truth)
PACKAGE_VERSION=$(node -e "console.log(require('./package.json').version)")
if [ -z "$PACKAGE_VERSION" ]; then
echo "❌ ERROR: Could not read version from package.json"
exit 1
fi
echo "📦 Package version (source of truth): $PACKAGE_VERSION"
echo ""
ERRORS=0
# Check README.md
if [ -f "README.md" ]; then
README_VERSION=$(grep -iE "^\\*\\*Version\\*\\*:" README.md | head -1 | sed -E 's/.*Version\*\*:[[:space:]]*([0-9]+\.[0-9]+\.[0-9]+).*/\1/' || echo "")
if [ -n "$README_VERSION" ] && [ "$README_VERSION" != "$PACKAGE_VERSION" ]; then
echo "❌ README.md version mismatch: found '$README_VERSION', expected '$PACKAGE_VERSION'"
ERRORS=1
else
echo "✅ README.md version matches"
fi
fi
# Check src/definitions.ts
if [ -f "src/definitions.ts" ]; then
DEFS_VERSION=$(grep -E "@version" src/definitions.ts | head -1 | sed -E 's/.*@version[[:space:]]+([0-9]+\.[0-9]+\.[0-9]+).*/\1/' || echo "")
if [ -n "$DEFS_VERSION" ] && [ "$DEFS_VERSION" != "$PACKAGE_VERSION" ]; then
echo "❌ src/definitions.ts version mismatch: found '$DEFS_VERSION', expected '$PACKAGE_VERSION'"
ERRORS=1
else
echo "✅ src/definitions.ts version matches"
fi
fi
# Check other common locations
for file in "src/index.ts" "src/web.ts" "src/observability.ts"; do
if [ -f "$file" ]; then
FILE_VERSION=$(grep -E "@version" "$file" 2>/dev/null | head -1 | sed -E 's/.*@version[[:space:]]+([0-9]+\.[0-9]+\.[0-9]+).*/\1/' || echo "")
if [ -n "$FILE_VERSION" ] && [ "$FILE_VERSION" != "$PACKAGE_VERSION" ]; then
echo "⚠️ $file version mismatch: found '$FILE_VERSION', expected '$PACKAGE_VERSION'"
# Warning only, not an error
fi
fi
done
echo ""
if [ $ERRORS -eq 0 ]; then
echo "✅ All version checks passed"
exit 0
else
echo "❌ Version consistency check failed"
echo ""
echo "Fix: Update version headers to match package.json version: $PACKAGE_VERSION"
exit 1
fi