Skip to content

Commit 854e610

Browse files
committed
validate-versioning logging changes
1 parent b49a1cf commit 854e610

1 file changed

Lines changed: 45 additions & 1 deletion

File tree

.github/workflows/validate-versioning.yml

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,12 @@ jobs:
4343
- name: Validate versioning and changelog
4444
if: steps.check-changes.outputs.has_changes == 'true'
4545
run: |
46+
set -e
4647
PACKAGE_DIR="packages/ui"
4748
49+
echo "::group::Version Validation"
50+
echo "Starting validation for package: $PACKAGE_DIR"
51+
4852
# Get current version from package.json
4953
CURRENT_VERSION=$(node -e "console.log(require('./$PACKAGE_DIR/package.json').version)")
5054
echo "Current version in package.json: $CURRENT_VERSION"
@@ -55,6 +59,7 @@ jobs:
5559
echo "Base version in package.json: $BASE_VERSION"
5660
5761
# Validate version format and check if version was increased (semantic versioning)
62+
echo "Validating version format and increment..."
5863
VERSION_CHECK=$(node -e "
5964
const semver = require('semver');
6065
const current = '$CURRENT_VERSION';
@@ -96,11 +101,18 @@ jobs:
96101
" 2>&1)
97102
98103
VERSION_CHECK_EXIT=$?
104+
105+
echo "Full version check output:"
106+
echo "$VERSION_CHECK"
107+
99108
VERSION_CHECK_OUTPUT=$(echo "$VERSION_CHECK" | head -1)
109+
echo "First line of output: $VERSION_CHECK_OUTPUT"
100110
101111
if [ $VERSION_CHECK_EXIT -ne 0 ]; then
112+
echo "::error file=$PACKAGE_DIR/package.json::Version validation failed"
102113
case "$VERSION_CHECK_OUTPUT" in
103114
"INVALID_CURRENT")
115+
echo "::error::Current version '$CURRENT_VERSION' is not a valid semantic version!"
104116
echo "❌ ERROR: Current version '$CURRENT_VERSION' is not a valid semantic version!"
105117
echo "Please use semantic versioning format (e.g., 1.0.0, 1.0.1, 1.1.0, 2.0.0)"
106118
exit 1
@@ -110,6 +122,7 @@ jobs:
110122
echo "Assuming version bump is valid (first release or manual version)"
111123
;;
112124
"SAME_VERSION")
125+
echo "::error file=$PACKAGE_DIR/package.json::Version was not bumped!"
113126
echo "❌ ERROR: Version in package.json was not bumped!"
114127
echo "Current version: $CURRENT_VERSION"
115128
echo "Base version: $BASE_VERSION"
@@ -120,6 +133,7 @@ jobs:
120133
PATCH_VER=$(echo "$VERSION_CHECK" | grep "PATCH=" | cut -d= -f2)
121134
MINOR_VER=$(echo "$VERSION_CHECK" | grep "MINOR=" | cut -d= -f2)
122135
MAJOR_VER=$(echo "$VERSION_CHECK" | grep "MAJOR=" | cut -d= -f2)
136+
echo "::error file=$PACKAGE_DIR/package.json::Version must be greater than base version!"
123137
echo "❌ ERROR: Version must be greater than the base version!"
124138
echo "Current version: $CURRENT_VERSION"
125139
echo "Base version: $BASE_VERSION"
@@ -130,16 +144,30 @@ jobs:
130144
echo " - Major: $BASE_VERSION -> $MAJOR_VER"
131145
exit 1
132146
;;
147+
*)
148+
echo "::error::Unknown version validation error"
149+
echo "❌ ERROR: Unknown version validation error"
150+
echo "Full output was:"
151+
echo "$VERSION_CHECK"
152+
exit 1
153+
;;
133154
esac
134155
else
135156
echo "✅ Version was bumped from $BASE_VERSION to $CURRENT_VERSION (valid semver increment)"
136157
fi
158+
echo "::endgroup::"
137159
160+
echo "::group::Package Lock Validation"
138161
# Verify version in package-lock.json matches package.json
139162
LOCKFILE_TOP_VERSION=$(node -e "console.log(require('./$PACKAGE_DIR/package-lock.json').version)")
140163
LOCKFILE_PACKAGE_VERSION=$(node -e "console.log(require('./$PACKAGE_DIR/package-lock.json').packages[''].version)")
141164
165+
echo "package.json version: $CURRENT_VERSION"
166+
echo "package-lock.json top-level version: $LOCKFILE_TOP_VERSION"
167+
echo "package-lock.json packages[''].version: $LOCKFILE_PACKAGE_VERSION"
168+
142169
if [ "$LOCKFILE_TOP_VERSION" != "$CURRENT_VERSION" ]; then
170+
echo "::error file=$PACKAGE_DIR/package-lock.json::Version mismatch in package-lock.json (top-level)!"
143171
echo "❌ ERROR: Version mismatch in package-lock.json (top-level)!"
144172
echo "package.json version: $CURRENT_VERSION"
145173
echo "package-lock.json top-level version: $LOCKFILE_TOP_VERSION"
@@ -148,6 +176,7 @@ jobs:
148176
fi
149177
150178
if [ "$LOCKFILE_PACKAGE_VERSION" != "$CURRENT_VERSION" ]; then
179+
echo "::error file=$PACKAGE_DIR/package-lock.json::Version mismatch in package-lock.json (packages[''])!"
151180
echo "❌ ERROR: Version mismatch in package-lock.json (packages[''])!"
152181
echo "package.json version: $CURRENT_VERSION"
153182
echo "package-lock.json packages[''].version: $LOCKFILE_PACKAGE_VERSION"
@@ -156,10 +185,16 @@ jobs:
156185
fi
157186
158187
echo "✅ Version in package-lock.json matches package.json: $CURRENT_VERSION (both top-level and packages[''])"
188+
echo "::endgroup::"
159189
190+
echo "::group::Changelog Validation"
160191
# Check if changelog has entry for this version
161192
CHANGELOG_FILE="$PACKAGE_DIR/CHANGELOG.md"
193+
echo "Checking changelog file: $CHANGELOG_FILE"
194+
echo "Looking for version: $CURRENT_VERSION"
195+
162196
if ! grep -q "^## \\[$CURRENT_VERSION\\]" "$CHANGELOG_FILE"; then
197+
echo "::error file=$CHANGELOG_FILE::Changelog entry for version $CURRENT_VERSION not found!"
163198
echo "❌ ERROR: Changelog entry for version $CURRENT_VERSION not found!"
164199
echo "Please add a changelog entry in $CHANGELOG_FILE with the format:"
165200
echo "## [$CURRENT_VERSION] - YYYY-MM-DD"
@@ -171,16 +206,20 @@ jobs:
171206
# Verify changelog entry is not empty (has content after the version header)
172207
CHANGELOG_LINE=$(grep -n "^## \\[$CURRENT_VERSION\\]" "$CHANGELOG_FILE" | cut -d: -f1)
173208
if [ -z "$CHANGELOG_LINE" ]; then
209+
echo "::error file=$CHANGELOG_FILE::Could not find changelog entry line"
174210
echo "❌ ERROR: Could not find changelog entry line"
175211
exit 1
176212
fi
177213
214+
echo "Changelog entry found at line: $CHANGELOG_LINE"
215+
178216
# Check if there's content after the version header (skip empty entries)
179217
NEXT_VERSION_LINE=$(tail -n +$((CHANGELOG_LINE + 1)) "$CHANGELOG_FILE" | grep -n "^## \\[" | head -1 | cut -d: -f1)
180218
if [ -z "$NEXT_VERSION_LINE" ]; then
181219
# This is the latest version, check if there's any content after the header
182220
LINES_AFTER_HEADER=$(tail -n +$((CHANGELOG_LINE + 1)) "$CHANGELOG_FILE" | grep -v '^$' | head -1)
183221
if [ -z "$LINES_AFTER_HEADER" ]; then
222+
echo "::error file=$CHANGELOG_FILE::Changelog entry for version $CURRENT_VERSION is empty!"
184223
echo "❌ ERROR: Changelog entry for version $CURRENT_VERSION is empty!"
185224
echo "Please add at least one change entry (Added, Changed, Fixed, etc.)"
186225
exit 1
@@ -189,10 +228,15 @@ jobs:
189228
# Check if there's content between this version and the next
190229
LINES_BETWEEN=$(sed -n "$((CHANGELOG_LINE + 1)),$((CHANGELOG_LINE + NEXT_VERSION_LINE - 1))p" "$CHANGELOG_FILE" | grep -v '^$' | head -1)
191230
if [ -z "$LINES_BETWEEN" ]; then
231+
echo "::error file=$CHANGELOG_FILE::Changelog entry for version $CURRENT_VERSION is empty!"
192232
echo "❌ ERROR: Changelog entry for version $CURRENT_VERSION is empty!"
193233
echo "Please add at least one change entry (Added, Changed, Fixed, etc.)"
194234
exit 1
195235
fi
196236
fi
197-
echo "✅ Changelog entry for version $CURRENT_VERSION has content"
237+
238+
echo "✅ Changelog entry for version $CURRENT_VERSION has content"
239+
echo "::endgroup::"
240+
241+
echo "::notice::All validations passed successfully!"
198242

0 commit comments

Comments
 (0)