E2E: Add support for building test plugins (#91873)
* build test apps with webpack * add extensions test app * update e2e tests * remove non-build test apps using amd * use @grafana/plugin-configs rather than create-plugin config * Update e2e/plugin-e2e/plugin-e2e-api-tests/as-admin-user/extensions/usePluginComponents.spec.ts Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> * Update package.json Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> * use run dir variable instead of hardcoded path * add dummy licence file * add separate step for building test plugins * support nested plugins * remove react-router-dom from the externals array * remove add_mode dev * lint starlark * pass license path as env variable * fix the path * chore(e2e-plugins): clean up dependencies to match core versions * refactor(e2e-plugins): prefer extending webpack plugins-config * docs(e2e-plugins): add basic info to extensions test plugin readme * update readme * change dir name from custom plugins to test plugins * change root readme * update lockfile --------- Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
This commit is contained in:
co-authored by
Jack Westbrook
parent
0af4a20b58
commit
d8ec95e9b1
@@ -4,6 +4,7 @@ load(
|
||||
"scripts/drone/steps/lib.star",
|
||||
"build_frontend_package_step",
|
||||
"build_storybook_step",
|
||||
"build_test_plugins_step",
|
||||
"cloud_plugins_e2e_tests_step",
|
||||
"compile_build_cmd",
|
||||
"download_grabpl_step",
|
||||
@@ -93,6 +94,7 @@ def build_e2e(trigger, ver_mode):
|
||||
|
||||
build_steps.extend(
|
||||
[
|
||||
build_test_plugins_step(),
|
||||
grafana_server_step(),
|
||||
e2e_tests_step("dashboards-suite"),
|
||||
e2e_tests_step("scenes/dashboards-suite"),
|
||||
|
||||
@@ -470,6 +470,26 @@ def build_frontend_step():
|
||||
],
|
||||
}
|
||||
|
||||
def build_test_plugins_step():
|
||||
"""Build the test plugins used in e2e tests
|
||||
|
||||
Returns:
|
||||
Drone step.
|
||||
"""
|
||||
return {
|
||||
"name": "build-test-plugins",
|
||||
"image": images["node"],
|
||||
"environment": {
|
||||
"NODE_OPTIONS": "--max_old_space_size=8192",
|
||||
},
|
||||
"depends_on": [
|
||||
"yarn-install",
|
||||
],
|
||||
"commands": [
|
||||
"yarn e2e:plugin:build",
|
||||
],
|
||||
}
|
||||
|
||||
def update_package_json_version():
|
||||
"""Updates the packages/ to use a version that has the build ID in it: 10.0.0pre -> 10.0.0-5432pre
|
||||
|
||||
@@ -773,6 +793,7 @@ def e2e_tests_step(suite, port = 3001, tries = None):
|
||||
"image": images["cypress"],
|
||||
"depends_on": [
|
||||
"grafana-server",
|
||||
"build-test-plugins",
|
||||
],
|
||||
"environment": {
|
||||
"HOST": "grafana-server",
|
||||
@@ -872,6 +893,7 @@ def playwright_e2e_tests_step():
|
||||
"image": images["node_deb"],
|
||||
"depends_on": [
|
||||
"grafana-server",
|
||||
"build-test-plugins",
|
||||
],
|
||||
"commands": [
|
||||
"npx wait-on@7.0.1 http://$HOST:$PORT",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
[security]
|
||||
content_security_policy = true
|
||||
content_security_policy_template = """require-trusted-types-for 'script'; script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $NONCE;object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline' blob:;img-src * data:;base-uri 'self';connect-src 'self' grafana.com ws://$ROOT_PATH wss://$ROOT_PATH;manifest-src 'self';media-src 'none';form-action 'self';"""
|
||||
@@ -5,6 +6,9 @@ content_security_policy_template = """require-trusted-types-for 'script'; script
|
||||
[feature_toggles]
|
||||
enable = publicDashboards
|
||||
|
||||
[plugins]
|
||||
allow_loading_unsigned_plugins=grafana-extensionstest-app,grafana-extensionexample1-app,grafana-extensionexample2-app,
|
||||
|
||||
[database]
|
||||
type=sqlite3
|
||||
wal=true
|
||||
|
||||
@@ -23,8 +23,9 @@ fi
|
||||
echo starting server
|
||||
|
||||
cp -r ./bin $RUNDIR
|
||||
cp -r ./public $RUNDIR
|
||||
cp -r ./tools $RUNDIR
|
||||
ln -s $(realpath ./public) $RUNDIR
|
||||
|
||||
|
||||
mkdir $RUNDIR/conf
|
||||
mkdir $PROV_DIR
|
||||
@@ -39,12 +40,12 @@ cp ./conf/defaults.ini $RUNDIR/conf/defaults.ini
|
||||
echo -e "Copying custom plugins from e2e tests"
|
||||
|
||||
mkdir -p "$RUNDIR/data/plugins"
|
||||
# when running in a local computer
|
||||
if [ -d "./e2e/custom-plugins" ]; then
|
||||
cp -r "./e2e/custom-plugins" "$RUNDIR/data/plugins"
|
||||
|
||||
if [ -d "./e2e/test-plugins" ]; then
|
||||
ln -s $(realpath ./e2e/test-plugins/*) "$RUNDIR/data/plugins"
|
||||
# when running in CI
|
||||
elif [ -d "../e2e/custom-plugins" ]; then
|
||||
cp -r "../e2e/custom-plugins" "$RUNDIR/data/plugins"
|
||||
elif [ -d "../e2e/test-plugins" ]; then
|
||||
cp -r "../e2e/test-plugins" "$RUNDIR/data/plugins"
|
||||
fi
|
||||
|
||||
echo -e "Copy provisioning setup from devenv"
|
||||
|
||||
Reference in New Issue
Block a user