fix(nx): add storybook to deploy pipeline

This commit is contained in:
Isaac Mann 2019-11-11 15:16:15 -05:00 committed by Victor Savkin
parent f095647013
commit 26ead7bfe3
10 changed files with 34 additions and 17 deletions

View File

@ -0,0 +1,5 @@
describe('storybook builer', () => {
it('should have a test', () => {
expect(true).toBeTruthy();
});
});

View File

@ -1,5 +1,9 @@
import { Tree } from '@angular-devkit/schematics'; import { Tree } from '@angular-devkit/schematics';
import { readJsonInTree } from '@nrwl/workspace'; import {
readJsonInTree,
readWorkspaceJson,
getProjectConfig
} from '@nrwl/workspace';
import { createTestUILib, runSchematic } from '../../utils/testing'; import { createTestUILib, runSchematic } from '../../utils/testing';
import { StorybookConfigureSchema } from './schema'; import { StorybookConfigureSchema } from './schema';
@ -24,17 +28,21 @@ describe('schematic:configuration', () => {
).toBeTruthy(); ).toBeTruthy();
}); });
it('should update `angular.json` file', async () => { it('should update workspace file', async () => {
const tree = await runSchematic( const tree = await runSchematic(
'configuration', 'configuration',
{ name: 'test-ui-lib' }, { name: 'test-ui-lib' },
appTree appTree
); );
const angularJson = readJsonInTree(tree, 'angular.json'); const project = getProjectConfig(tree, 'test-ui-lib');
const project = angularJson.projects['test-ui-lib'];
expect(project.architect.storybook).toEqual({ expect(project.architect.storybook).toEqual({
builder: '@nrwl/storybook:storybook', builder: '@nrwl/storybook:storybook',
configurations: {
ci: {
quiet: true
}
},
options: { options: {
port: 4400, port: 4400,
config: { config: {

View File

@ -1,5 +1,5 @@
import { Tree } from '@angular-devkit/schematics'; import { Tree } from '@angular-devkit/schematics';
import { readJsonInTree } from '@nrwl/workspace'; import { readJsonInTree, getProjectConfig } from '@nrwl/workspace';
import { createTestUILib, runSchematic } from '../../utils/testing'; import { createTestUILib, runSchematic } from '../../utils/testing';
describe('schematic:cypress-project', () => { describe('schematic:cypress-project', () => {
@ -30,8 +30,7 @@ describe('schematic:cypress-project', () => {
{ name: 'test-ui-lib' }, { name: 'test-ui-lib' },
appTree appTree
); );
const angularJson = readJsonInTree(tree, 'angular.json'); const project = getProjectConfig(tree, 'test-ui-lib-e2e');
const project = angularJson.projects['test-ui-lib-e2e'];
expect(project.architect.e2e.options.devServerTarget).toEqual( expect(project.architect.e2e.options.devServerTarget).toEqual(
'test-ui-lib:storybook' 'test-ui-lib:storybook'

View File

@ -18,9 +18,6 @@ describe('ng-add', () => {
const packageJson = readJsonInTree(tree, 'package.json'); const packageJson = readJsonInTree(tree, 'package.json');
expect(packageJson.devDependencies['@storybook/angular']).toBeDefined(); expect(packageJson.devDependencies['@storybook/angular']).toBeDefined();
expect(packageJson.devDependencies['@storybook/addon-knobs']).toBeDefined(); expect(packageJson.devDependencies['@storybook/addon-knobs']).toBeDefined();
expect(
packageJson.devDependencies['@types/storybook__addon-knobs']
).toBeDefined();
expect(packageJson.devDependencies['babel-loader']).toBeDefined(); expect(packageJson.devDependencies['babel-loader']).toBeDefined();
expect(packageJson.devDependencies['@babel/core']).toBeDefined(); expect(packageJson.devDependencies['@babel/core']).toBeDefined();
}); });

View File

@ -307,6 +307,10 @@ describe('Migration', () => {
'@nrwl/next': { version: '2.0.0', alwaysAddToPackageJson: false }, '@nrwl/next': { version: '2.0.0', alwaysAddToPackageJson: false },
'@nrwl/node': { version: '2.0.0', alwaysAddToPackageJson: false }, '@nrwl/node': { version: '2.0.0', alwaysAddToPackageJson: false },
'@nrwl/react': { version: '2.0.0', alwaysAddToPackageJson: false }, '@nrwl/react': { version: '2.0.0', alwaysAddToPackageJson: false },
'@nrwl/storybook': {
version: '2.0.0',
alwaysAddToPackageJson: false
},
'@nrwl/tao': { version: '2.0.0', alwaysAddToPackageJson: false }, '@nrwl/tao': { version: '2.0.0', alwaysAddToPackageJson: false },
'@nrwl/web': { version: '2.0.0', alwaysAddToPackageJson: false } '@nrwl/web': { version: '2.0.0', alwaysAddToPackageJson: false }
} }

View File

@ -183,6 +183,7 @@ export class Migrator {
'@nrwl/next', '@nrwl/next',
'@nrwl/node', '@nrwl/node',
'@nrwl/react', '@nrwl/react',
'@nrwl/storybook',
'@nrwl/tao', '@nrwl/tao',
'@nrwl/web' '@nrwl/web'
].reduce( ].reduce(

View File

@ -49,6 +49,7 @@ cp README.md build/packages/next
cp README.md build/packages/angular cp README.md build/packages/angular
cp README.md build/packages/jest cp README.md build/packages/jest
cp README.md build/packages/cypress cp README.md build/packages/cypress
cp README.md build/packages/storybook
cp README.md build/packages/cli cp README.md build/packages/cli
cp README.md build/packages/tao cp README.md build/packages/tao
cp README.md build/packages/eslint-plugin-nx cp README.md build/packages/eslint-plugin-nx
@ -68,6 +69,7 @@ cp LICENSE build/packages/next
cp LICENSE build/packages/angular cp LICENSE build/packages/angular
cp LICENSE build/packages/jest cp LICENSE build/packages/jest
cp LICENSE build/packages/cypress cp LICENSE build/packages/cypress
cp LICENSE build/packages/storybook
cp LICENSE build/packages/cli cp LICENSE build/packages/cli
cp LICENSE build/packages/tao cp LICENSE build/packages/tao
cp LICENSE build/packages/eslint-plugin-nx cp LICENSE build/packages/eslint-plugin-nx

View File

@ -150,6 +150,7 @@ const options = {
'build/npm/create-nx-workspace/package.json', 'build/npm/create-nx-workspace/package.json',
'build/npm/jest/package.json', 'build/npm/jest/package.json',
'build/npm/cypress/package.json', 'build/npm/cypress/package.json',
'build/npm/storybook/package.json',
'build/npm/angular/package.json', 'build/npm/angular/package.json',
'build/npm/react/package.json', 'build/npm/react/package.json',
'build/npm/next/package.json', 'build/npm/next/package.json',

View File

@ -16,14 +16,14 @@ fi
cd build/packages cd build/packages
if [[ "$OSTYPE" == "darwin"* ]]; then if [[ "$OSTYPE" == "darwin"* ]]; then
sed -i "" "s|exports.nxVersion = '\*';|exports.nxVersion = '$NX_VERSION';|g" {react,next,web,jest,node,express,nest,cypress,angular,workspace}/src/utils/versions.js sed -i "" "s|exports.nxVersion = '\*';|exports.nxVersion = '$NX_VERSION';|g" {react,next,web,jest,node,express,nest,cypress,storybook,angular,workspace}/src/utils/versions.js
sed -i "" "s|\*|$NX_VERSION|g" {schematics,react,next,web,jest,node,express,nest,cypress,angular,workspace,cli,linter,tao,eslint-plugin-nx,create-nx-workspace}/package.json sed -i "" "s|\*|$NX_VERSION|g" {schematics,react,next,web,jest,node,express,nest,cypress,storybook,angular,workspace,cli,linter,tao,eslint-plugin-nx,create-nx-workspace}/package.json
sed -i "" "s|NX_VERSION|$NX_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js sed -i "" "s|NX_VERSION|$NX_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js
sed -i "" "s|ANGULAR_CLI_VERSION|$ANGULAR_CLI_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js sed -i "" "s|ANGULAR_CLI_VERSION|$ANGULAR_CLI_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js
sed -i "" "s|TYPESCRIPT_VERSION|$TYPESCRIPT_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js sed -i "" "s|TYPESCRIPT_VERSION|$TYPESCRIPT_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js
else else
sed -i "s|exports.nxVersion = '\*';|exports.nxVersion = '$NX_VERSION';|g" {react,next,web,jest,node,express,nest,cypress,angular,workspace}/src/utils/versions.js sed -i "s|exports.nxVersion = '\*';|exports.nxVersion = '$NX_VERSION';|g" {react,next,web,jest,node,express,nest,cypress,storybook,angular,workspace}/src/utils/versions.js
sed -i "s|\*|$NX_VERSION|g" {schematics,react,next,web,jest,node,express,nest,cypress,angular,workspace,cli,linter,tao,eslint-plugin-nx,create-nx-workspace}/package.json sed -i "s|\*|$NX_VERSION|g" {schematics,react,next,web,jest,node,express,nest,cypress,storybook,angular,workspace,cli,linter,tao,eslint-plugin-nx,create-nx-workspace}/package.json
sed -i "s|NX_VERSION|$NX_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js sed -i "s|NX_VERSION|$NX_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js
sed -i "s|ANGULAR_CLI_VERSION|$ANGULAR_CLI_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js sed -i "s|ANGULAR_CLI_VERSION|$ANGULAR_CLI_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js
sed -i "s|TYPESCRIPT_VERSION|$TYPESCRIPT_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js sed -i "s|TYPESCRIPT_VERSION|$TYPESCRIPT_VERSION|g" create-nx-workspace/bin/create-nx-workspace.js
@ -31,9 +31,9 @@ fi
if [[ $NX_VERSION == "*" ]]; then if [[ $NX_VERSION == "*" ]]; then
if [[ "$OSTYPE" == "darwin"* ]]; then if [[ "$OSTYPE" == "darwin"* ]]; then
sed -E -i "" "s|\"@nrwl\/([^\"]+)\": \"\\*\"|\"@nrwl\/\1\": \"file:$PWD\/\1\"|" {schematics,jest,web,react,next,node,express,nest,cypress,angular,workspace,linter,cli,tao,eslint-plugin-nx,create-nx-workspace}/package.json sed -E -i "" "s|\"@nrwl\/([^\"]+)\": \"\\*\"|\"@nrwl\/\1\": \"file:$PWD\/\1\"|" {schematics,jest,web,react,next,node,express,nest,cypress,storybook,angular,workspace,linter,cli,tao,eslint-plugin-nx,create-nx-workspace}/package.json
else else
echo $PWD echo $PWD
sed -E -i "s|\"@nrwl\/([^\"]+)\": \"\\*\"|\"@nrwl\/\1\": \"file:$PWD\/\1\"|" {schematics,jest,web,react,next,node,express,nest,cypress,angular,workspace,linter,cli,tao,eslint-plugin-nx,create-nx-workspace}/package.json sed -E -i "s|\"@nrwl\/([^\"]+)\": \"\\*\"|\"@nrwl\/\1\": \"file:$PWD\/\1\"|" {schematics,jest,web,react,next,node,express,nest,cypress,storybook,angular,workspace,linter,cli,tao,eslint-plugin-nx,create-nx-workspace}/package.json
fi fi
fi fi

View File

@ -3,5 +3,5 @@
if [ -n "$1" ]; then if [ -n "$1" ]; then
jest --maxWorkers=1 ./build/packages/$1.spec.js jest --maxWorkers=1 ./build/packages/$1.spec.js
else else
jest --maxWorkers=1 ./build/packages/{schematics,bazel,builders,react,jest,web,node,express,nest,cypress,angular,workspace,tao,eslint-plugin-nx,next} --passWithNoTests jest --maxWorkers=1 ./build/packages/{schematics,bazel,builders,react,jest,web,node,express,nest,cypress,storybook,angular,workspace,tao,eslint-plugin-nx,next} --passWithNoTests
fi fi