From a9ba58eee96ec89fecadc2c2be2dd358d0c9c64a Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Thu, 2 Mar 2023 14:33:30 +0100 Subject: [PATCH 1/5] Update scripts to generate a datasource test pugin --- packages/create-plugin/package.json | 3 ++- ...js => generate-datasource-with-backend.js} | 0 .../generate-datasource-without-backend.js | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) rename packages/create-plugin/scripts/{generate-datasource.js => generate-datasource-with-backend.js} (100%) create mode 100644 packages/create-plugin/scripts/generate-datasource-without-backend.js diff --git a/packages/create-plugin/package.json b/packages/create-plugin/package.json index 4fb447e18..2bbbf834a 100644 --- a/packages/create-plugin/package.json +++ b/packages/create-plugin/package.json @@ -24,7 +24,8 @@ "generate-app": "tsc && yarn clean-generated && CREATE_PLUGIN_DEV=true node ./scripts/generate-app.js", "generate-app-backend": "tsc && yarn clean-generated && CREATE_PLUGIN_DEV=true node ./scripts/generate-app-backend.js", "generate-panel": "tsc && yarn clean-generated && CREATE_PLUGIN_DEV=true node ./scripts/generate-panel.js", - "generate-datasource": "tsc && yarn clean-generated && CREATE_PLUGIN_DEV=true node ./scripts/generate-datasource.js", + "generate-datasource": "tsc && yarn clean-generated && CREATE_PLUGIN_DEV=true node ./scripts/generate-datasource-without-backend.js", + "generate-datasource-backend": "tsc && yarn clean-generated && CREATE_PLUGIN_DEV=true node ./scripts/generate-datasource-with-backend.js", "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx ./src", "lint:fix": "yarn lint --fix", "test": "jest", diff --git a/packages/create-plugin/scripts/generate-datasource.js b/packages/create-plugin/scripts/generate-datasource-with-backend.js similarity index 100% rename from packages/create-plugin/scripts/generate-datasource.js rename to packages/create-plugin/scripts/generate-datasource-with-backend.js diff --git a/packages/create-plugin/scripts/generate-datasource-without-backend.js b/packages/create-plugin/scripts/generate-datasource-without-backend.js new file mode 100644 index 000000000..9711a1116 --- /dev/null +++ b/packages/create-plugin/scripts/generate-datasource-without-backend.js @@ -0,0 +1,24 @@ +const nodePlop = require('node-plop'); +const path = require('path'); +const fs = require('fs'); + +async function generatePanel() { + const plopFile = path.join(__dirname, '../dist/commands/generate.plopfile.js'); + if (!fs.existsSync(plopFile)) { + console.error('Run build first'); + process.exit(1); + } + const plop = await nodePlop(plopFile); + const generator = plop.getGenerator('create-plugin'); + await generator.runActions({ + pluginName: 'my-plugin', + orgName: 'my-org', + pluginDescription: 'Auto-generated datasource', + pluginType: 'datasource', + hasBackend: false, + hasGithubWorkflows: true, + hasGithubLevitateWorkflow: true, + }); +} + +generatePanel(); From 446c36127ddc161ee01b4f82f1923fe53987970b Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Thu, 2 Mar 2023 14:33:47 +0100 Subject: [PATCH 2/5] Remove unused import from datasource template --- packages/create-plugin/templates/datasource/src/datasource.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-plugin/templates/datasource/src/datasource.ts b/packages/create-plugin/templates/datasource/src/datasource.ts index 50d2d1f46..92ee42eee 100644 --- a/packages/create-plugin/templates/datasource/src/datasource.ts +++ b/packages/create-plugin/templates/datasource/src/datasource.ts @@ -7,7 +7,7 @@ import { FieldType, } from '@grafana/data'; -import { MyQuery, MyDataSourceOptions, DEFAULT_QUERY } from './types'; +import { MyQuery, MyDataSourceOptions } from './types'; export class DataSource extends DataSourceApi { constructor(instanceSettings: DataSourceInstanceSettings) { From 8108c0c55bc909e7302196b5c627fffcdaec4e34 Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Thu, 2 Mar 2023 14:38:01 +0100 Subject: [PATCH 3/5] Update ci to include app with backend and datasource without backend --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30ffeced6..936f83e69 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,10 +29,14 @@ jobs: - name: '@grafana/create-plugin - test an app plugin generation' run: yarn workspace @grafana/create-plugin run generate-app && (cd ./packages/create-plugin/generated && yarn install --prefer-offline && yarn build && yarn lint) + - name: '@grafana/create-plugin - test an app with backend plugin generation' + run: yarn workspace @grafana/create-plugin run generate-app-backend && (cd ./packages/create-plugin/generated && yarn install --prefer-offline && yarn build && yarn lint) - name: '@grafana/create-plugin - test panel plugin generation' run: yarn workspace @grafana/create-plugin run generate-panel && (cd ./packages/create-plugin/generated && yarn install --prefer-offline && yarn build && yarn lint) - name: '@grafana/create-plugin - test datasource plugin generation' run: yarn workspace @grafana/create-plugin run generate-datasource && (cd ./packages/create-plugin/generated && yarn install --prefer-offline && yarn build && yarn lint) + - name: '@grafana/create-plugin - test datasource with backend plugin generation' + run: yarn workspace @grafana/create-plugin run generate-datasource-backend && (cd ./packages/create-plugin/generated && yarn install --prefer-offline && yarn build && yarn lint) - name: '@grafana/sign-plugin - build' run: yarn workspace @grafana/sign-plugin run build From b0f6f460e335d549f214082e28f76d76866c5590 Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Thu, 2 Mar 2023 14:43:10 +0100 Subject: [PATCH 4/5] Use grafana 9.3.8 --- packages/create-plugin/src/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-plugin/src/constants.ts b/packages/create-plugin/src/constants.ts index 627d64243..8dd57db8a 100644 --- a/packages/create-plugin/src/constants.ts +++ b/packages/create-plugin/src/constants.ts @@ -38,7 +38,7 @@ export enum PLUGIN_TYPES { // and will be available to use in the templates. // Example: "@grafana/ui": "{{ grafanaVersion }}" export const EXTRA_TEMPLATE_VARIABLES = { - grafanaVersion: '9.2.5', + grafanaVersion: '9.3.8', }; export const GRAFANA_FE_PACKAGES = [ From 027bdf366981d7902640ce9b32d1feebf86813d9 Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Mon, 6 Mar 2023 10:15:05 +0100 Subject: [PATCH 5/5] Rename generate functions --- packages/create-plugin/scripts/generate-app-backend.js | 4 ++-- packages/create-plugin/scripts/generate-app.js | 4 ++-- .../create-plugin/scripts/generate-datasource-with-backend.js | 4 ++-- .../scripts/generate-datasource-without-backend.js | 4 ++-- packages/create-plugin/scripts/generate-panel.js | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/create-plugin/scripts/generate-app-backend.js b/packages/create-plugin/scripts/generate-app-backend.js index 24e281c9e..76bd2151a 100644 --- a/packages/create-plugin/scripts/generate-app-backend.js +++ b/packages/create-plugin/scripts/generate-app-backend.js @@ -2,7 +2,7 @@ const nodePlop = require('node-plop'); const path = require('path'); const fs = require('fs'); -async function generateApp() { +async function generate() { const plopFile = path.join(__dirname, '../dist/commands/generate.plopfile.js'); if (!fs.existsSync(plopFile)) { console.error('Run build first'); @@ -21,4 +21,4 @@ async function generateApp() { }); } -generateApp(); +generate(); diff --git a/packages/create-plugin/scripts/generate-app.js b/packages/create-plugin/scripts/generate-app.js index 077b54c9e..64eaaa27b 100644 --- a/packages/create-plugin/scripts/generate-app.js +++ b/packages/create-plugin/scripts/generate-app.js @@ -2,7 +2,7 @@ const nodePlop = require('node-plop'); const path = require('path'); const fs = require('fs'); -async function generatePanel() { +async function generate() { const plopFile = path.join(__dirname, '../dist/commands/generate.plopfile.js'); if (!fs.existsSync(plopFile)) { console.error('Run build first'); @@ -21,4 +21,4 @@ async function generatePanel() { }); } -generatePanel(); +generate(); diff --git a/packages/create-plugin/scripts/generate-datasource-with-backend.js b/packages/create-plugin/scripts/generate-datasource-with-backend.js index 1777c456a..8f1e57398 100644 --- a/packages/create-plugin/scripts/generate-datasource-with-backend.js +++ b/packages/create-plugin/scripts/generate-datasource-with-backend.js @@ -2,7 +2,7 @@ const nodePlop = require('node-plop'); const path = require('path'); const fs = require('fs'); -async function generatePanel() { +async function generate() { const plopFile = path.join(__dirname, '../dist/commands/generate.plopfile.js'); if (!fs.existsSync(plopFile)) { console.error('Run build first'); @@ -21,4 +21,4 @@ async function generatePanel() { }); } -generatePanel(); +generate(); diff --git a/packages/create-plugin/scripts/generate-datasource-without-backend.js b/packages/create-plugin/scripts/generate-datasource-without-backend.js index 9711a1116..bdd303d93 100644 --- a/packages/create-plugin/scripts/generate-datasource-without-backend.js +++ b/packages/create-plugin/scripts/generate-datasource-without-backend.js @@ -2,7 +2,7 @@ const nodePlop = require('node-plop'); const path = require('path'); const fs = require('fs'); -async function generatePanel() { +async function generate() { const plopFile = path.join(__dirname, '../dist/commands/generate.plopfile.js'); if (!fs.existsSync(plopFile)) { console.error('Run build first'); @@ -21,4 +21,4 @@ async function generatePanel() { }); } -generatePanel(); +generate(); diff --git a/packages/create-plugin/scripts/generate-panel.js b/packages/create-plugin/scripts/generate-panel.js index 5feba8726..3b4ddbb7c 100644 --- a/packages/create-plugin/scripts/generate-panel.js +++ b/packages/create-plugin/scripts/generate-panel.js @@ -2,7 +2,7 @@ const nodePlop = require('node-plop'); const path = require('path'); const fs = require('fs'); -async function generatePanel() { +async function generate() { const plopFile = path.join(__dirname, '../dist/commands/generate.plopfile.js'); if (!fs.existsSync(plopFile)) { console.error('Run build first'); @@ -20,4 +20,4 @@ async function generatePanel() { }); } -generatePanel(); +generate();