From 9fe034e5ca92a4ba843c895e09ef7a29d7a73b30 Mon Sep 17 00:00:00 2001 From: Timur Olzhabayev Date: Mon, 31 Jan 2022 09:55:21 +0100 Subject: [PATCH] chore(toolkit): add toolkit version to signing (#44326) --- packages/grafana-toolkit/src/cli/index.ts | 6 ++---- packages/grafana-toolkit/src/cli/tasks/plugin.sign.ts | 4 ++-- packages/grafana-toolkit/src/cli/tasks/plugin.utils.ts | 10 ++++++++++ packages/grafana-toolkit/src/plugins/types.ts | 3 +++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/grafana-toolkit/src/cli/index.ts b/packages/grafana-toolkit/src/cli/index.ts index 797684d4d9d..f8ec7bc945d 100644 --- a/packages/grafana-toolkit/src/cli/index.ts +++ b/packages/grafana-toolkit/src/cli/index.ts @@ -1,7 +1,6 @@ // @ts-ignore import chalk from 'chalk'; import { program } from 'commander'; -import { promises as fs } from 'fs'; import { execTask } from './utils/execTask'; import { startTask } from './tasks/core.start'; import { changelogTask } from './tasks/changelog'; @@ -13,7 +12,7 @@ import { pluginTestTask } from './tasks/plugin.tests'; import { searchTestDataSetupTask } from './tasks/searchTestDataSetup'; import { closeMilestoneTask } from './tasks/closeMilestone'; import { pluginDevTask } from './tasks/plugin.dev'; -import { githubPublishTask } from './tasks/plugin.utils'; +import { getToolkitVersion, githubPublishTask } from './tasks/plugin.utils'; import { pluginUpdateTask } from './tasks/plugin.update'; import { ciBuildPluginTask, ciPackagePluginTask, ciPluginReportTask } from './tasks/plugin.ci'; import { buildPackageTask } from './tasks/package.build'; @@ -132,8 +131,7 @@ export const run = (includeInternalScripts = false) => { } program.option('-v, --version', 'Toolkit version').action(async () => { - const pkg = await fs.readFile(`${__dirname}/../../package.json`, 'utf8'); - const { version } = JSON.parse(pkg); + const version = getToolkitVersion(); console.log(`v${version}`); }); diff --git a/packages/grafana-toolkit/src/cli/tasks/plugin.sign.ts b/packages/grafana-toolkit/src/cli/tasks/plugin.sign.ts index 1a9d2a5b925..c8c566a88b6 100644 --- a/packages/grafana-toolkit/src/cli/tasks/plugin.sign.ts +++ b/packages/grafana-toolkit/src/cli/tasks/plugin.sign.ts @@ -1,7 +1,7 @@ import path from 'path'; import { buildManifest, signManifest, saveManifest } from '../../plugins/manifest'; import { Task, TaskRunner } from './task'; - +import { getToolkitVersion } from './plugin.utils'; interface PluginSignOptions { signatureType?: string; rootUrls?: string[]; @@ -23,8 +23,8 @@ const pluginSignRunner: TaskRunner = async ({ signatureType, manifest.rootUrls = rootUrls; } + manifest.toolkit = { version: getToolkitVersion() }; const signedManifest = await signManifest(manifest); - // console.log(signedManifest); console.log('Saving signed manifest...'); await saveManifest(distContentDir, signedManifest); diff --git a/packages/grafana-toolkit/src/cli/tasks/plugin.utils.ts b/packages/grafana-toolkit/src/cli/tasks/plugin.utils.ts index 2ffeabfc784..ee32cf54177 100755 --- a/packages/grafana-toolkit/src/cli/tasks/plugin.utils.ts +++ b/packages/grafana-toolkit/src/cli/tasks/plugin.utils.ts @@ -4,6 +4,8 @@ import { GitHubRelease } from '../utils/githubRelease'; import { getPluginId } from '../../config/utils/getPluginId'; import { getCiFolder } from '../../plugins/env'; import { useSpinner } from '../utils/useSpinner'; +import { readFileSync } from 'fs'; + import path = require('path'); import execa = require('execa'); @@ -140,6 +142,14 @@ const prepareRelease = ({ dryrun, verbose }: any) => } }); +export const getToolkitVersion = () => { + const pkg = readFileSync(`${__dirname}/../../../package.json`, 'utf8'); + const { version } = JSON.parse(pkg); + if (!version) { + throw `Could not find the toolkit version`; + } + return version; +}; interface GithubPublishReleaseOptions { commitHash?: string; githubToken: string; diff --git a/packages/grafana-toolkit/src/plugins/types.ts b/packages/grafana-toolkit/src/plugins/types.ts index 792fd09e4fd..296cbc8252a 100644 --- a/packages/grafana-toolkit/src/plugins/types.ts +++ b/packages/grafana-toolkit/src/plugins/types.ts @@ -98,4 +98,7 @@ export interface ManifestInfo { plugin: string; version: string; files: Record; + toolkit?: { + version: string; + }; }