NPM: Improve package validation (#112426)

* update validation script to run all checks, but fail if any fail

* fix package validation

* reduce comment
This commit is contained in:
Josh Hunt
2025-10-21 10:32:57 +01:00
committed by GitHub
parent 143ea45ea6
commit f7070b8ccc
4 changed files with 37 additions and 4 deletions
+1
View File
@@ -34,6 +34,7 @@ try {
// Fix for @grafana/i18n so eslint-plugin can be imported by consumers
if (pkgJson.content.name === '@grafana/i18n') {
exports['./eslint-plugin'] = {
types: './dist/eslint/index.d.ts',
import: './dist/eslint/index.cjs',
require: './dist/eslint/index.cjs',
};
+29 -4
View File
@@ -1,18 +1,43 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
# This script is used to validate the npm packages that are published to npmjs.org are in the correct format.
# It won't catch things like malformed JS or Types but it will assert that the package has
# the correct files and package.json properties.
ARTIFACTS_DIR="./npm-artifacts"
failed_checks=()
for file in "$ARTIFACTS_DIR"/*.tgz; do
echo "🔍 Checking NPM package: $file"
# Ignore named-exports for now as builds aren't compatible yet.
yarn attw "$file" --ignore-rules "named-exports"
yarn publint "$file"
# TODO: Fix the error with @grafana/i18n/eslint-resolution
if [[ "$file" == *"@grafana-i18n"* ]]; then
ATTW_FLAGS="--profile node16"
fi
# shellcheck disable=SC2086
if ! yarn attw "$file" --ignore-rules "false-cjs" $ATTW_FLAGS; then
echo "attw check failed for $file"
echo ""
failed_checks+=("$file - yarn attw")
fi
if ! yarn publint "$file"; then
echo "publint check failed for $file"
echo ""
failed_checks+=("$file - yarn publint")
fi
done
if (( ${#failed_checks[@]} > 0 )); then
echo ""
echo "❌ The following NPM package checks failed:"
for check in "${failed_checks[@]}"; do
echo " - $check"
done
exit 1
fi
echo "🚀 All NPM package checks passed! 🚀"
exit 0