diff --git a/.drone.yml b/.drone.yml
index 19ae07730d5..12c44b520d1 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -571,6 +571,8 @@ steps:
name: build-frontend
- commands:
- ./bin/build build-frontend-packages --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER}
+ - yarn packages:pack
+ - ./scripts/validate-npm-packages.sh
depends_on:
- compile-build-cmd
- yarn-install
@@ -1458,6 +1460,8 @@ steps:
name: build-frontend
- commands:
- ./bin/build build-frontend-packages --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER}
+ - yarn packages:pack
+ - ./scripts/validate-npm-packages.sh
depends_on:
- compile-build-cmd
- yarn-install
@@ -1734,7 +1738,7 @@ steps:
repo:
- grafana/grafana
- commands:
- - ./scripts/circle-release-canary-packages.sh
+ - ./scripts/publish-npm-packages.sh --dist-tag 'canary' --registry 'https://registry.npmjs.org/'
depends_on:
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
@@ -1746,6 +1750,9 @@ steps:
image: grafana/build-container:1.7.3
name: release-canary-npm-packages
when:
+ paths:
+ include:
+ - packages/**
repo:
- grafana/grafana
- commands:
@@ -4685,6 +4692,8 @@ steps:
name: build-frontend
- commands:
- ./bin/build build-frontend-packages --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER}
+ - yarn packages:pack
+ - ./scripts/validate-npm-packages.sh
depends_on:
- compile-build-cmd
- yarn-install
@@ -5328,6 +5337,8 @@ steps:
name: build-frontend
- commands:
- ./bin/build build-frontend-packages --jobs 8 --edition enterprise --build-id ${DRONE_BUILD_NUMBER}
+ - yarn packages:pack
+ - ./scripts/validate-npm-packages.sh
depends_on:
- compile-build-cmd
- yarn-install
@@ -6049,6 +6060,8 @@ steps:
name: build-frontend
- commands:
- ./bin/build build-frontend-packages --jobs 8 --edition enterprise --build-id ${DRONE_BUILD_NUMBER}
+ - yarn packages:pack
+ - ./scripts/validate-npm-packages.sh
depends_on:
- compile-build-cmd
- yarn-install
@@ -6810,6 +6823,6 @@ kind: secret
name: enterprise2_security_prefix
---
kind: signature
-hmac: d3567c954d0ac9f1f47d55bc85eb6594379c888fe591428f2dcd0146f2bd3ca2
+hmac: 7f282aaf4f3ba496f2d954241a16afd2facbf2cf1ef04dfb75cfec1b42fd39d1
...
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 07c06825e28..2d551c7a4df 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -455,6 +455,8 @@ lerna.json @grafana/frontend-ops
/scripts/check-breaking-changes.sh @grafana/plugins-platform-frontend
/scripts/ci-* @grafana/grafana-delivery
/scripts/circle-* @grafana/grafana-delivery
+/scripts/publish-npm-packages.sh @grafana/grafana-delivery @grafana/plugins-platform-frontend
+/scripts/validate-npm-packages.sh @grafana/grafana-delivery @grafana/plugins-platform-frontend
/scripts/ci-frontend-metrics.sh @grafana/grafana-frontend-platform @grafana/plugins-platform-frontend @grafana/grafana-bi-squad
/scripts/cli/ @grafana/grafana-frontend-platform
/scripts/clean-git-or-error.sh @grafana/grafana-as-code
diff --git a/.gitignore b/.gitignore
index 39b7a1e2ae4..fbfb6a6396f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -139,7 +139,7 @@ pkg/services/quota/quotaimpl/storage/storage.json
/packages/**/package.tgz
/packages/grafana-toolkit/sass
## CI places the packages in a different location
-/npm-artifacts/*.tgz
+/npm-artifacts
# Ignore frontend build manifest
manifest.json
diff --git a/devenv/local-npm/conf/config.yaml b/devenv/local-npm/conf/config.yaml
new file mode 100644
index 00000000000..26686016f46
--- /dev/null
+++ b/devenv/local-npm/conf/config.yaml
@@ -0,0 +1,202 @@
+#
+# This is the default configuration file. It allows all users to do anything,
+# please read carefully the documentation and best practices to
+# improve security.
+#
+# Do not configure host and port under `listen` in this file
+# as it will be ignored when using docker.
+# see https://verdaccio.org/docs/en/docker#docker-and-custom-port-configuration
+#
+# Look here for more config file examples:
+# https://github.com/verdaccio/verdaccio/tree/5.x/conf
+#
+# Read about the best practices
+# https://verdaccio.org/docs/best
+
+# path to a directory with all packages
+storage: /verdaccio/storage/data
+# path to a directory with plugins to include
+plugins: /verdaccio/plugins
+
+# https://verdaccio.org/docs/webui
+web:
+ title: Verdaccio
+ # comment out to disable gravatar support
+ # gravatar: false
+ # by default packages are ordercer ascendant (asc|desc)
+ # sort_packages: asc
+ # convert your UI to the dark side
+ # darkMode: true
+ # html_cache: true
+ # by default all features are displayed
+ # login: true
+ # showInfo: true
+ # showSettings: true
+ # In combination with darkMode you can force specific theme
+ # showThemeSwitch: true
+ # showFooter: true
+ # showSearch: true
+ # showRaw: true
+ # showDownloadTarball: true
+ # HTML tags injected after manifest
+ # scriptsBodyAfter:
+ # - ''
+ # HTML tags injected before ends
+ # metaScripts:
+ # - ''
+ # - ''
+ # - ''
+ # HTML tags injected first child at