diff --git a/.circleci/config.yml b/.circleci/config.yml index c49af2a063b5..d74e1c1dd15b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -341,30 +341,6 @@ jobs: paths: - sandbox/*/bench/*.json - sandbox/*/storybook-static - build-test-sandboxes: - parameters: - parallelism: - type: integer - executor: - class: large - name: sb_node_16_browsers - parallelism: << parameters.parallelism >> - steps: - - git-shallow-clone/checkout_advanced: - clone_options: '--depth 1 --verbose' - - attach_workspace: - at: . - - run: - name: Building Sandboxes - command: yarn task --task test-build --template $(yarn get-template --cadence << pipeline.parameters.workflow >> --task build) --no-link --start-from=never --junit - - report-workflow-on-failure: - template: $(yarn get-template --cadence << pipeline.parameters.workflow >> --task build) - - store_test_results: - path: test-results - - persist_to_workspace: - root: . - paths: - - sandbox/*/bench/test-build.json test-runner-production: parameters: parallelism: @@ -526,10 +502,6 @@ workflows: parallelism: 12 requires: - build - - build-test-sandboxes: - parallelism: 12 - requires: - - create-sandboxes - build-sandboxes: parallelism: 12 requires: @@ -554,7 +526,6 @@ workflows: parallelism: 3 requires: - build-sandboxes - - build-test-sandboxes # TODO: reenable once we find out the source of flakyness # - test-runner-dev: # requires: @@ -587,10 +558,6 @@ workflows: parallelism: 21 requires: - build - - build-test-sandboxes: - parallelism: 21 - requires: - - create-sandboxes - build-sandboxes: parallelism: 21 requires: @@ -615,7 +582,6 @@ workflows: parallelism: 3 requires: - build-sandboxes - - build-test-sandboxes # TODO: reenable once we find out the source of flakyness # - test-runner-dev: # parallelism: 4 @@ -649,10 +615,6 @@ workflows: # - smoke-test-sandboxes: # disabled for now # requires: # - create-sandboxes - - build-test-sandboxes: - parallelism: 36 - requires: - - create-sandboxes - build-sandboxes: parallelism: 36 requires: diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli/src/sandbox-templates.ts index f6a74983aa71..3f799113649e 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli/src/sandbox-templates.ts @@ -67,6 +67,7 @@ export type Template = { modifications?: { skipTemplateStories?: boolean; mainConfig?: Partial; + testBuild?: boolean; disableDocs?: boolean; }; /** @@ -559,7 +560,29 @@ const benchTemplates = { }, skipTasks: ['e2e-tests-dev', 'test-runner', 'test-runner-dev', 'e2e-tests', 'chromatic'], }, -} satisfies Record<`bench/${string}`, Template & { isInternal: true }>; + 'bench/react-vite-default-ts-test-build': { + ...baseTemplates['react-vite/default-ts'], + name: 'Bench (react-vite/default-ts, test-build)', + inDevelopment: true, + isInternal: true, + modifications: { + skipTemplateStories: true, + testBuild: true, + }, + skipTasks: ['e2e-tests-dev', 'test-runner', 'test-runner-dev', 'e2e-tests', 'chromatic'], + }, + 'bench/react-webpack-18-ts-test-build': { + ...baseTemplates['react-webpack/18-ts'], + name: 'Bench (react-webpack/18-ts, test-build)', + inDevelopment: true, + isInternal: true, + modifications: { + skipTemplateStories: true, + testBuild: true, + }, + skipTasks: ['e2e-tests-dev', 'test-runner', 'test-runner-dev', 'e2e-tests', 'chromatic'], + }, +} satisfies Record; export const allTemplates: Record = { ...baseTemplates, @@ -580,6 +603,8 @@ export const normal: TemplateKey[] = [ 'bench/react-vite-default-ts', 'bench/react-webpack-18-ts', 'bench/react-vite-default-ts-nodocs', + 'bench/react-vite-default-ts-test-build', + 'bench/react-webpack-18-ts-test-build', ]; export const merged: TemplateKey[] = [ ...normal, diff --git a/scripts/task.ts b/scripts/task.ts index 6cf4fa7e9993..897957653413 100644 --- a/scripts/task.ts +++ b/scripts/task.ts @@ -20,7 +20,7 @@ import { sandbox } from './tasks/sandbox'; import { syncDocs } from './tasks/sync-docs'; import { dev } from './tasks/dev'; import { smokeTest } from './tasks/smoke-test'; -import { build, testBuild } from './tasks/build'; +import { build } from './tasks/build'; import { serve } from './tasks/serve'; import { testRunnerBuild } from './tasks/test-runner-build'; import { testRunnerDev } from './tasks/test-runner-dev'; @@ -103,7 +103,6 @@ export const tasks = { dev, 'smoke-test': smokeTest, build, - 'test-build': testBuild, serve, 'test-runner': testRunnerBuild, 'test-runner-dev': testRunnerDev, diff --git a/scripts/tasks/build.ts b/scripts/tasks/build.ts index 09324edac58d..099a98ee1a90 100644 --- a/scripts/tasks/build.ts +++ b/scripts/tasks/build.ts @@ -12,10 +12,14 @@ export const build: Task = { async ready({ builtSandboxDir }) { return pathExists(builtSandboxDir); }, - async run({ sandboxDir }, { dryRun, debug }) { + async run({ sandboxDir, template }, { dryRun, debug }) { const start = now(); - await exec(`yarn build-storybook --quiet`, { cwd: sandboxDir }, { dryRun, debug }); + await exec( + `yarn build-storybook --quiet ${template.modifications?.testBuild ? '--test' : ''}`, + { cwd: sandboxDir }, + { dryRun, debug } + ); const buildTime = now() - start; const dir = join(sandboxDir, 'storybook-static'); @@ -48,49 +52,3 @@ export const build: Task = { ); }, }; - -export const testBuild: Task = { - description: 'Build the static version of the sandbox optimized for testing purposes', - dependsOn: ['sandbox'], - async ready({ builtSandboxDir }) { - return pathExists(builtSandboxDir); - }, - async run({ sandboxDir }, { dryRun, debug }) { - const start = now(); - - await exec(`yarn build-storybook --test --quiet`, { cwd: sandboxDir }, { dryRun, debug }); - - const testBuildTime = now() - start; - const dir = join(sandboxDir, 'storybook-static'); - const getSize = promisify(dirSize); - const testBuildSize = await getSize(dir); - const testBuildSbAddonsSize = await getSize(join(dir, 'sb-addons')); - const testBuildSbCommonSize = await getSize(join(dir, 'sb-common-assets')); - const testBuildSbManagerSize = await getSize(join(dir, 'sb-manager')); - const testBuildSbPreviewSize = await getSize(join(dir, 'sb-preview')); - const testBuildPrebuildSize = - testBuildSbAddonsSize + - testBuildSbCommonSize + - testBuildSbManagerSize + - testBuildSbPreviewSize; - - const testBuildStaticSize = await getSize(join(dir, 'static')).catch(() => 0); - const testBuildPreviewSize = testBuildSize - testBuildPrebuildSize - testBuildStaticSize; - - await saveBench( - 'test-build', - { - testBuildTime, - testBuildSize, - testBuildSbAddonsSize, - testBuildSbCommonSize, - testBuildSbManagerSize, - testBuildSbPreviewSize, - testBuildStaticSize, - testBuildPrebuildSize, - testBuildPreviewSize, - }, - { rootDir: sandboxDir } - ); - }, -};