Compare commits

...

17 Commits

Author SHA1 Message Date
Dominik Prokop
39a08f263d Packages: publish packages@6.3.0-alpha.36 2019-07-09 12:16:11 +02:00
Dominik Prokop
526493ecbd Run cleanup before prepare 2019-07-09 12:14:40 +02:00
Dominik Prokop
4b5aa9ed94 Add postpublish cleanup 2019-07-09 12:10:36 +02:00
Dominik Prokop
f1bf478733 Packages: publish packages@6.3.0-alpha.33 2019-07-09 12:06:41 +02:00
Dominik Prokop
8dd6b18ff2 Rename packages scripts 2019-07-09 12:05:00 +02:00
ryan
cec8e94227 add next tag to releases 2019-07-08 11:39:32 -07:00
ryan
9fdd0d9aac use --no-git-tag-version --no-push 2019-07-08 11:30:56 -07:00
ryan
ca0ce6837d add skip-git to version bump 2019-07-08 11:25:02 -07:00
ryan
37ae46c791 v6.3.0-alpha.32 2019-07-08 11:20:46 -07:00
ryan
81053cc539 Merge branch 'master' into lerna
* master:
  Refactor: fix range util imports (#17988)
  Refactor: move dom utils to @grafana/ui (#17976)
  Docs: Documents new features available with Loki data source in Explore (#17984)
  Prometheus: added time range filter to series labels query (#16851)
  Explore: Adds support for new loki 'start' and 'end' params for labels endpoint (#17512)
  Chore: Removes custom debounce utility in favor of lodash/debounce (#17977)
  Api: Fix auth tokens returning wrong seenAt value (#17980)
2019-07-08 11:19:43 -07:00
ryan
06611d75fc prepare to prep 2019-07-08 11:06:56 -07:00
ryan
ce1e74aff1 v6.3.0-alpha.31 2019-07-08 10:57:28 -07:00
ryan
4859e30684 put back prepare :) I'm trying to do v31 2019-07-08 10:56:42 -07:00
Dominik Prokop
5af791e3dd Temporarily remove the prepare script 2019-07-08 17:07:59 +02:00
Dominik Prokop
eef02dc9b1 v6.3.0-alpha.30 2019-07-08 16:38:42 +02:00
Dominik Prokop
6f6d9c842c Add basic scripts 2019-07-08 16:37:22 +02:00
Dominik Prokop
4d6bcb6a14 First attempt for lerna integration 2019-07-08 16:19:50 +02:00
14 changed files with 245 additions and 211 deletions

6
lerna.json Normal file
View File

@@ -0,0 +1,6 @@
{
"npmClient": "yarn",
"useWorkspaces": true,
"packages": ["packages/*"],
"version": "6.3.0-alpha.36"
}

View File

@@ -79,6 +79,7 @@
"husky": "1.3.1", "husky": "1.3.1",
"jest": "24.8.0", "jest": "24.8.0",
"jest-date-mock": "1.0.7", "jest-date-mock": "1.0.7",
"lerna": "^3.15.0",
"lint-staged": "8.1.5", "lint-staged": "8.1.5",
"load-grunt-tasks": "3.5.2", "load-grunt-tasks": "3.5.2",
"mini-css-extract-plugin": "0.5.0", "mini-css-extract-plugin": "0.5.0",
@@ -143,13 +144,11 @@
"storybook:build": "cd packages/grafana-ui && yarn storybook:build", "storybook:build": "cd packages/grafana-ui && yarn storybook:build",
"prettier:check": "prettier --list-different \"**/*.{ts,tsx,scss}\"", "prettier:check": "prettier --list-different \"**/*.{ts,tsx,scss}\"",
"prettier:write": "prettier --list-different \"**/*.{ts,tsx,scss}\" --write", "prettier:write": "prettier --list-different \"**/*.{ts,tsx,scss}\" --write",
"gui:tslint": "tslint -c ./packages/grafana-ui/tslint.json --project ./packages/grafana-ui/tsconfig.json",
"gui:build": "grafana-toolkit gui:build",
"gui:releasePrepare": "grafana-toolkit gui:release",
"gui:publish": "cd packages/grafana-ui/dist && npm publish --access public",
"gui:release": "grafana-toolkit gui:release -p --createVersionCommit",
"precommit": "grafana-toolkit precommit", "precommit": "grafana-toolkit precommit",
"themes:generate": "ts-node --project ./scripts/cli/tsconfig.json ./scripts/cli/generateSassVariableFiles.ts" "themes:generate": "ts-node --project ./scripts/cli/tsconfig.json ./scripts/cli/generateSassVariableFiles.ts",
"packages:prepare": "lerna run clean && npm run test && lerna version --tag-version-prefix=\"packages@\" -m \"Packages: publish %s\" --no-push",
"packages:build": "lerna run clean && lerna run build",
"packages:publish": "lerna publish from-package --contents dist --tag-version-prefix=\"packages@\" --dist-tag next"
}, },
"husky": { "husky": {
"hooks": { "hooks": {

View File

@@ -0,0 +1,3 @@
# (2019-07-08)
First public release

View File

@@ -1,6 +1,6 @@
{ {
"name": "@grafana/data", "name": "@grafana/data",
"version": "6.3.0-alpha.0", "version": "6.3.0-alpha.36",
"description": "Grafana Data Library", "description": "Grafana Data Library",
"keywords": [ "keywords": [
"typescript" "typescript"
@@ -10,11 +10,12 @@
"tslint": "tslint -c tslint.json --project tsconfig.json", "tslint": "tslint -c tslint.json --project tsconfig.json",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"clean": "rimraf ./dist ./compiled", "clean": "rimraf ./dist ./compiled",
"build": "rollup -c rollup.config.ts" "bundle": "rollup -c rollup.config.ts",
"build": "grafana-toolkit package:build --scope=data",
"postpublish": "npm run clean"
}, },
"author": "Grafana Labs", "author": "Grafana Labs",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": {},
"devDependencies": { "devDependencies": {
"@types/jest": "23.3.14", "@types/jest": "23.3.14",
"@types/jquery": "1.10.35", "@types/jquery": "1.10.35",

View File

@@ -0,0 +1,3 @@
# (2019-07-08)
First public release

View File

@@ -1,6 +1,6 @@
{ {
"name": "@grafana/runtime", "name": "@grafana/runtime",
"version": "6.3.0-alpha.0", "version": "6.3.0-alpha.36",
"description": "Grafana Runtime Library", "description": "Grafana Runtime Library",
"keywords": [ "keywords": [
"typescript", "typescript",
@@ -12,7 +12,9 @@
"tslint": "tslint -c tslint.json --project tsconfig.json", "tslint": "tslint -c tslint.json --project tsconfig.json",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"clean": "rimraf ./dist ./compiled", "clean": "rimraf ./dist ./compiled",
"build": "rollup -c rollup.config.ts" "bundle": "rollup -c rollup.config.ts",
"build": "grafana-toolkit package:build --scope=runtime",
"postpublish": "npm run clean"
}, },
"author": "Grafana Labs", "author": "Grafana Labs",
"license": "Apache-2.0", "license": "Apache-2.0",

View File

@@ -20,7 +20,7 @@ const buildCjsPackage = ({ env }) => {
globals: {}, globals: {},
}, },
], ],
external: ['lodash'], // Use Lodash from grafana external: ['lodash', '@grafana/ui'], // Use Lodash from grafana
plugins: [ plugins: [
commonjs({ commonjs({
include: /node_modules/, include: /node_modules/,

View File

@@ -1,6 +1,6 @@
{ {
"name": "@grafana/toolkit", "name": "@grafana/toolkit",
"version": "6.3.0-alpha.2", "version": "6.3.0-alpha.36",
"description": "Grafana Toolkit", "description": "Grafana Toolkit",
"keywords": [ "keywords": [
"typescript", "typescript",
@@ -14,7 +14,9 @@
"tslint": "tslint -c tslint.json --project tsconfig.json", "tslint": "tslint -c tslint.json --project tsconfig.json",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"precommit": "npm run tslint & npm run typecheck", "precommit": "npm run tslint & npm run typecheck",
"clean": "rimraf ./dist ./compiled" "clean": "rimraf ./dist ./compiled",
"build": "grafana-toolkit toolkit:build",
"postpublish": "npm run clean"
}, },
"author": "Grafana Labs", "author": "Grafana Labs",
"license": "Apache-2.0", "license": "Apache-2.0",

View File

@@ -3,8 +3,6 @@ import program from 'commander';
import { execTask } from './utils/execTask'; import { execTask } from './utils/execTask';
import chalk from 'chalk'; import chalk from 'chalk';
import { startTask } from './tasks/core.start'; import { startTask } from './tasks/core.start';
import { buildTask } from './tasks/grafanaui.build';
import { releaseTask } from './tasks/grafanaui.release';
import { changelogTask } from './tasks/changelog'; import { changelogTask } from './tasks/changelog';
import { cherryPickTask } from './tasks/cherrypick'; import { cherryPickTask } from './tasks/cherrypick';
import { precommitTask } from './tasks/precommit'; import { precommitTask } from './tasks/precommit';
@@ -16,6 +14,7 @@ import { searchTestDataSetupTask } from './tasks/searchTestDataSetup';
import { closeMilestoneTask } from './tasks/closeMilestone'; import { closeMilestoneTask } from './tasks/closeMilestone';
import { pluginDevTask } from './tasks/plugin.dev'; import { pluginDevTask } from './tasks/plugin.dev';
import { pluginCITask } from './tasks/plugin.ci'; import { pluginCITask } from './tasks/plugin.ci';
import { buildPackageTask } from './tasks/package.build';
export const run = (includeInternalScripts = false) => { export const run = (includeInternalScripts = false) => {
if (includeInternalScripts) { if (includeInternalScripts) {
@@ -33,24 +32,12 @@ export const run = (includeInternalScripts = false) => {
}); });
program program
.command('gui:build') .command('package:build')
.description('Builds @grafana/ui package to packages/grafana-ui/dist') .option('-s, --scope <packages>', 'packages=[data|runtime|ui|toolkit]')
.description('Builds @grafana/* package to packages/grafana-*/dist')
.action(async cmd => { .action(async cmd => {
// @ts-ignore await execTask(buildPackageTask)({
await execTask(buildTask)(); scope: cmd.scope,
});
program
.command('gui:release')
.description('Prepares @grafana/ui release (and publishes to npm on demand)')
.option('-p, --publish', 'Publish @grafana/ui to npm registry')
.option('-u, --usePackageJsonVersion', 'Use version specified in package.json')
.option('--createVersionCommit', 'Create and push version commit')
.action(async cmd => {
await execTask(releaseTask)({
publishToNpm: !!cmd.publish,
usePackageJsonVersion: !!cmd.usePackageJsonVersion,
createVersionCommit: !!cmd.createVersionCommit,
}); });
}); });

View File

@@ -1,190 +1,191 @@
import execa = require('execa'); // import execa = require('execa');
import { execTask } from '../utils/execTask'; // import { execTask } from '../utils/execTask';
import { changeCwdToGrafanaUiDist, changeCwdToGrafanaUi, restoreCwd } from '../utils/cwd'; // import { changeCwdToGrafanaUiDist, changeCwdToGrafanaUi, restoreCwd } from '../utils/cwd';
import { ReleaseType, inc } from 'semver'; // import { ReleaseType, inc } from 'semver';
import { prompt } from 'inquirer'; // import { prompt } from 'inquirer';
import chalk from 'chalk'; // import chalk from 'chalk';
import { useSpinner } from '../utils/useSpinner'; // import { useSpinner } from '../utils/useSpinner';
import { savePackage, buildTask, clean } from './grafanaui.build'; // import { savePackage, buildTask, clean } from './grafanaui.build';
import { TaskRunner, Task } from './task'; // import { TaskRunner, Task } from './task';
type VersionBumpType = 'prerelease' | 'patch' | 'minor' | 'major'; // type VersionBumpType = 'prerelease' | 'patch' | 'minor' | 'major';
interface ReleaseTaskOptions { // interface ReleaseTaskOptions {
publishToNpm: boolean; // publishToNpm: boolean;
usePackageJsonVersion: boolean; // usePackageJsonVersion: boolean;
createVersionCommit: boolean; // createVersionCommit: boolean;
} // }
const promptBumpType = async () => { // const promptBumpType = async () => {
return prompt<{ type: VersionBumpType }>([ // return prompt<{ type: VersionBumpType }>([
{ // {
type: 'list', // type: 'list',
message: 'Select version bump', // message: 'Select version bump',
name: 'type', // name: 'type',
choices: ['prerelease', 'patch', 'minor', 'major'], // choices: ['prerelease', 'patch', 'minor', 'major'],
}, // },
]); // ]);
}; // };
const promptPrereleaseId = async (message = 'Is this a prerelease?', allowNo = true) => { // const promptPrereleaseId = async (message = 'Is this a prerelease?', allowNo = true) => {
return prompt<{ id: string }>([ // return prompt<{ id: string }>([
{ // {
type: 'list', // type: 'list',
message: message, // message: message,
name: 'id', // name: 'id',
choices: allowNo ? ['no', 'alpha', 'beta'] : ['alpha', 'beta'], // choices: allowNo ? ['no', 'alpha', 'beta'] : ['alpha', 'beta'],
}, // },
]); // ]);
}; // };
const promptConfirm = async (message?: string) => { // const promptConfirm = async (message?: string) => {
return prompt<{ confirmed: boolean }>([ // return prompt<{ confirmed: boolean }>([
{ // {
type: 'confirm', // type: 'confirm',
message: message || 'Is that correct?', // message: message || 'Is that correct?',
name: 'confirmed', // name: 'confirmed',
default: false, // default: false,
}, // },
]); // ]);
}; // };
// Since Grafana core depends on @grafana/ui highly, we run full check before release // // Since Grafana core depends on @grafana/ui highly, we run full check before release
const runChecksAndTests = async () => // const runChecksAndTests = async () =>
// @ts-ignore // // @ts-ignore
useSpinner<void>(`Running checks and tests`, async () => { // useSpinner<void>(`Running checks and tests`, async () => {
try { // try {
await execa('npm', ['run', 'test']); // await execa('npm', ['run', 'test']);
} catch (e) { // } catch (e) {
console.log(e); // console.log(e);
throw e;
}
})();
const bumpVersion = (version: string) => // throw e;
// @ts-ignore // }
useSpinner<void>(`Saving version ${version} to package.json`, async () => { // })();
changeCwdToGrafanaUi();
await execa('npm', ['version', version]);
changeCwdToGrafanaUiDist();
const pkg = require(`${process.cwd()}/package.json`);
pkg.version = version;
await savePackage({ path: `${process.cwd()}/package.json`, pkg });
})();
const publishPackage = (name: string, version: string) => // const bumpVersion = (version: string) =>
// @ts-ignore // // @ts-ignore
useSpinner<void>(`Publishing ${name} @ ${version} to npm registry...`, async () => { // useSpinner<void>(`Saving version ${version} to package.json`, async () => {
changeCwdToGrafanaUiDist(); // changeCwdToGrafanaUi();
await execa('npm', ['publish', '--access', 'public']); // await execa('npm', ['version', version]);
})(); // changeCwdToGrafanaUiDist();
// const pkg = require(`${process.cwd()}/package.json`);
// pkg.version = version;
// await savePackage({ path: `${process.cwd()}/package.json`, pkg });
// })();
const ensureMasterBranch = async () => { // const publishPackage = (name: string, version: string) =>
const currentBranch = await execa.stdout('git', ['symbolic-ref', '--short', 'HEAD']); // // @ts-ignore
const status = await execa.stdout('git', ['status', '--porcelain']); // useSpinner<void>(`Publishing ${name} @ ${version} to npm registry...`, async () => {
// changeCwdToGrafanaUiDist();
// await execa('npm', ['publish', '--access', 'public']);
// })();
if (currentBranch !== 'master' && status !== '') { // const ensureMasterBranch = async () => {
console.error(chalk.red.bold('You need to be on clean master branch to release @grafana/ui')); // const currentBranch = await execa.stdout('git', ['symbolic-ref', '--short', 'HEAD']);
process.exit(1); // const status = await execa.stdout('git', ['status', '--porcelain']);
}
};
const prepareVersionCommitAndPush = async (version: string) => // if (currentBranch !== 'master' && status !== '') {
// @ts-ignore // console.error(chalk.red.bold('You need to be on clean master branch to release @grafana/ui'));
useSpinner<void>('Commiting and pushing @grafana/ui version update', async () => { // process.exit(1);
await execa.stdout('git', ['commit', '-a', '-m', `Upgrade @grafana/ui version to v${version}`]); // }
await execa.stdout('git', ['push']); // };
})();
const releaseTaskRunner: TaskRunner<ReleaseTaskOptions> = async ({ // const prepareVersionCommitAndPush = async (version: string) =>
publishToNpm, // // @ts-ignore
usePackageJsonVersion, // useSpinner<void>('Commiting and pushing @grafana/ui version update', async () => {
createVersionCommit, // await execa.stdout('git', ['commit', '-a', '-m', `Upgrade @grafana/ui version to v${version}`]);
}) => { // await execa.stdout('git', ['push']);
changeCwdToGrafanaUi(); // })();
// @ts-ignore
await clean(); // Clean previous build if exists
restoreCwd();
if (publishToNpm) { // const releaseTaskRunner: TaskRunner<ReleaseTaskOptions> = async ({
// TODO: Ensure release branch // publishToNpm,
// When need to update this when we star keeping @grafana/ui releases in sync with core // usePackageJsonVersion,
await ensureMasterBranch(); // createVersionCommit,
} // }) => {
// changeCwdToGrafanaUi();
// // @ts-ignore
// await clean(); // Clean previous build if exists
// restoreCwd();
await runChecksAndTests(); // if (publishToNpm) {
// // TODO: Ensure release branch
// // When need to update this when we star keeping @grafana/ui releases in sync with core
// await ensureMasterBranch();
// }
await execTask(buildTask)({} as any); // await runChecksAndTests();
let releaseConfirmed = false; // await execTask(buildTask)({} as any);
let nextVersion;
changeCwdToGrafanaUiDist();
const pkg = require(`${process.cwd()}/package.json`); // let releaseConfirmed = false;
// let nextVersion;
// changeCwdToGrafanaUiDist();
console.log(`Current version: ${pkg.version}`); // const pkg = require(`${process.cwd()}/package.json`);
do { // console.log(`Current version: ${pkg.version}`);
if (!usePackageJsonVersion) {
const { type } = await promptBumpType();
console.log(type);
if (type === 'prerelease') {
const { id } = await promptPrereleaseId('What kind of prerelease?', false);
nextVersion = inc(pkg.version, type, id as any);
} else {
const { id } = await promptPrereleaseId();
if (id !== 'no') {
nextVersion = inc(pkg.version, `pre${type}` as ReleaseType, id as any);
} else {
nextVersion = inc(pkg.version, type as ReleaseType);
}
}
} else {
nextVersion = pkg.version;
}
console.log(chalk.yellowBright.bold(`You are going to release a new version of ${pkg.name}`)); // do {
// if (!usePackageJsonVersion) {
// const { type } = await promptBumpType();
// console.log(type);
// if (type === 'prerelease') {
// const { id } = await promptPrereleaseId('What kind of prerelease?', false);
// nextVersion = inc(pkg.version, type, id as any);
// } else {
// const { id } = await promptPrereleaseId();
// if (id !== 'no') {
// nextVersion = inc(pkg.version, `pre${type}` as ReleaseType, id as any);
// } else {
// nextVersion = inc(pkg.version, type as ReleaseType);
// }
// }
// } else {
// nextVersion = pkg.version;
// }
if (usePackageJsonVersion) { // console.log(chalk.yellowBright.bold(`You are going to release a new version of ${pkg.name}`));
console.log(chalk.green(`Version based on package.json: `), chalk.bold.yellowBright(`${nextVersion}`));
} else {
console.log(chalk.green(`Version bump: ${pkg.version} ->`), chalk.bold.yellowBright(`${nextVersion}`));
}
const { confirmed } = await promptConfirm(); // if (usePackageJsonVersion) {
// console.log(chalk.green(`Version based on package.json: `), chalk.bold.yellowBright(`${nextVersion}`));
// } else {
// console.log(chalk.green(`Version bump: ${pkg.version} ->`), chalk.bold.yellowBright(`${nextVersion}`));
// }
releaseConfirmed = confirmed; // const { confirmed } = await promptConfirm();
} while (!releaseConfirmed);
if (!usePackageJsonVersion) { // releaseConfirmed = confirmed;
await bumpVersion(nextVersion); // } while (!releaseConfirmed);
}
if (createVersionCommit) { // if (!usePackageJsonVersion) {
await prepareVersionCommitAndPush(nextVersion); // await bumpVersion(nextVersion);
} // }
if (publishToNpm) { // if (createVersionCommit) {
console.log(chalk.yellowBright.bold(`\nReview dist package.json before proceeding!\n`)); // await prepareVersionCommitAndPush(nextVersion);
const { confirmed } = await promptConfirm('Are you ready to publish to npm?'); // }
if (!confirmed) { // if (publishToNpm) {
process.exit(); // console.log(chalk.yellowBright.bold(`\nReview dist package.json before proceeding!\n`));
} // const { confirmed } = await promptConfirm('Are you ready to publish to npm?');
await publishPackage(pkg.name, nextVersion); // if (!confirmed) {
console.log(chalk.green(`\nVersion ${nextVersion} of ${pkg.name} succesfully released!`)); // process.exit();
console.log(chalk.yellow(`\nUpdated @grafana/ui/package.json with version bump created.`)); // }
process.exit(); // await publishPackage(pkg.name, nextVersion);
} else { // console.log(chalk.green(`\nVersion ${nextVersion} of ${pkg.name} succesfully released!`));
console.log( // console.log(chalk.yellow(`\nUpdated @grafana/ui/package.json with version bump created.`));
chalk.green(
`\nVersion ${nextVersion} of ${pkg.name} succesfully prepared for release. See packages/grafana-ui/dist`
)
);
console.log(chalk.green(`\nTo publish to npm registry run`), chalk.bold.blue(`npm run gui:publish`));
}
};
export const releaseTask = new Task<ReleaseTaskOptions>('@grafana/ui release', releaseTaskRunner); // process.exit();
// } else {
// console.log(
// chalk.green(
// `\nVersion ${nextVersion} of ${pkg.name} succesfully prepared for release. See packages/grafana-ui/dist`
// )
// );
// console.log(chalk.green(`\nTo publish to npm registry run`), chalk.bold.blue(`npm run gui:publish`));
// }
// };
// export const releaseTask = new Task<ReleaseTaskOptions>('@grafana/ui release', releaseTaskRunner);

View File

@@ -1,7 +1,9 @@
import execa = require('execa'); import execa = require('execa');
// @ts-ignore // @ts-ignore
import * as fs from 'fs'; import * as fs from 'fs';
import { changeCwdToGrafanaUi, restoreCwd } from '../utils/cwd'; // @ts-ignore
import * as path from 'path';
import { changeCwdToGrafanaUi, restoreCwd, changeCwdToPackage } from '../utils/cwd';
import chalk from 'chalk'; import chalk from 'chalk';
import { useSpinner } from '../utils/useSpinner'; import { useSpinner } from '../utils/useSpinner';
import { Task, TaskRunner } from './task'; import { Task, TaskRunner } from './task';
@@ -15,7 +17,7 @@ export const clean = useSpinner<void>('Cleaning', async () => await execa('npm',
const compile = useSpinner<void>('Compiling sources', () => execa('tsc', ['-p', './tsconfig.build.json'])); const compile = useSpinner<void>('Compiling sources', () => execa('tsc', ['-p', './tsconfig.build.json']));
// @ts-ignore // @ts-ignore
const rollup = useSpinner<void>('Bundling', () => execa('npm', ['run', 'build'])); const rollup = useSpinner<void>('Bundling', () => execa('npm', ['run', 'bundle']));
interface SavePackageOptions { interface SavePackageOptions {
path: string; path: string;
@@ -68,8 +70,21 @@ const moveFiles = () => {
})(); })();
}; };
const buildTaskRunner: TaskRunner<void> = async () => { interface PackageBuildOptions {
cwd = changeCwdToGrafanaUi(); scope: string;
}
const buildTaskRunner: TaskRunner<PackageBuildOptions> = async ({ scope }) => {
if (!scope) {
throw new Error('Provide packages with -s, --scope <packages>');
}
const scopes = scope.split(',').map(s => {
return async () => {
cwd = path.resolve(__dirname, `../../../../grafana-${s}`);
// Lerna executes this in package's dir context, but for testing purposes I want to be able to run from root:
// grafana-toolkit package:build --scope=<package>
process.chdir(cwd);
distDir = `${cwd}/dist`; distDir = `${cwd}/dist`;
const pkg = require(`${cwd}/package.json`); const pkg = require(`${cwd}/package.json`);
console.log(chalk.yellow(`Building ${pkg.name} (package.json version: ${pkg.version})`)); console.log(chalk.yellow(`Building ${pkg.name} (package.json version: ${pkg.version})`));
@@ -79,8 +94,10 @@ const buildTaskRunner: TaskRunner<void> = async () => {
await rollup(); await rollup();
await preparePackage(pkg); await preparePackage(pkg);
await moveFiles(); await moveFiles();
};
});
restoreCwd(); await Promise.all(scopes.map(s => s()));
}; };
export const buildTask = new Task<void>('@grafana/ui build', buildTaskRunner); export const buildPackageTask = new Task<PackageBuildOptions>('@grafana/ui build', buildTaskRunner);

View File

@@ -102,7 +102,7 @@ const copySassFiles = () => {
}; };
const toolkitBuildTaskRunner: TaskRunner<void> = async () => { const toolkitBuildTaskRunner: TaskRunner<void> = async () => {
cwd = changeCwdToGrafanaToolkit(); cwd = path.resolve(__dirname, '../../../');
distDir = `${cwd}/dist`; distDir = `${cwd}/dist`;
const pkg = require(`${cwd}/package.json`); const pkg = require(`${cwd}/package.json`);
console.log(chalk.yellow(`Building ${pkg.name} (package.json version: ${pkg.version})`)); console.log(chalk.yellow(`Building ${pkg.name} (package.json version: ${pkg.version})`));
@@ -114,7 +114,6 @@ const toolkitBuildTaskRunner: TaskRunner<void> = async () => {
fs.mkdirSync('./dist/sass'); fs.mkdirSync('./dist/sass');
await moveFiles(); await moveFiles();
await copySassFiles(); await copySassFiles();
restoreCwd();
}; };
export const toolkitBuildTask = new Task<void>('@grafana/toolkit build', toolkitBuildTaskRunner); export const toolkitBuildTask = new Task<void>('@grafana/toolkit build', toolkitBuildTaskRunner);

View File

@@ -17,3 +17,15 @@ export const changeCwdToGrafanaUiDist = () => {
export const restoreCwd = () => { export const restoreCwd = () => {
process.chdir(cwd); process.chdir(cwd);
}; };
type PackageId = 'ui' | 'data' | 'runtime' | 'toolkit';
export const changeCwdToPackage = (scope: PackageId) => {
try {
process.chdir(`${cwd}/packages/grafana-${scope}`);
} catch (e) {
throw e;
}
return process.cwd();
};

View File

@@ -1,6 +1,6 @@
{ {
"name": "@grafana/ui", "name": "@grafana/ui",
"version": "6.3.0-alpha.1", "version": "6.3.0-alpha.36",
"description": "Grafana Components Library", "description": "Grafana Components Library",
"keywords": [ "keywords": [
"typescript", "typescript",
@@ -14,7 +14,9 @@
"storybook": "start-storybook -p 9001 -c .storybook", "storybook": "start-storybook -p 9001 -c .storybook",
"storybook:build": "build-storybook -o ./dist/storybook -c .storybook", "storybook:build": "build-storybook -o ./dist/storybook -c .storybook",
"clean": "rimraf ./dist ./compiled", "clean": "rimraf ./dist ./compiled",
"build": "rollup -c rollup.config.ts" "bundle": "rollup -c rollup.config.ts",
"build": "grafana-toolkit package:build --scope=ui",
"postpublish": "npm run clean"
}, },
"author": "Grafana Labs", "author": "Grafana Labs",
"license": "Apache-2.0", "license": "Apache-2.0",