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:
@@ -28,6 +28,7 @@
|
||||
"require": "./src/internal/index.ts"
|
||||
},
|
||||
"./eslint-plugin": {
|
||||
"types": "./src/eslint/index.d.ts",
|
||||
"import": "./src/eslint/index.cjs",
|
||||
"require": "./src/eslint/index.cjs"
|
||||
}
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// Stub type definition for the eslint plugin to pass our package validation.
|
||||
// Will revisit this when we fix our package building and packaging process.
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
declare const plugin: any;
|
||||
export = plugin;
|
||||
@@ -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',
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user