version: 2.1 aliases: - &defaults working_directory: /tmp/storybook docker: - image: circleci/node:10-browsers jobs: install: <<: *defaults steps: - checkout - restore_cache: name: Restore core dependencies cache keys: - core-dependencies-v5-{{ checksum "yarn.lock" }} - run: name: Install dependencies command: yarn install - run: name: Check that yarn.lock is not corrupted command: yarn repo-dirty-check - save_cache: name: Cache core dependencies key: core-dependencies-v5-{{ checksum "yarn.lock" }} paths: - ~/.cache - node_modules - /root/.cache - persist_to_workspace: root: . paths: - node_modules - examples - addons - dev-kits - app - lib build: <<: *defaults steps: - checkout - attach_workspace: at: . - run: name: Bootstrap command: yarn bootstrap --core - persist_to_workspace: root: . paths: - examples - addons - dev-kits - app - lib chromatic: <<: *defaults parallelism: 10 steps: - checkout - attach_workspace: at: . - run: name: examples command: | yarn run-chromatics packtracker: <<: *defaults steps: - checkout - attach_workspace: at: . - run: name: Report webpack stats for manager of official storybook command: | cd examples/official-storybook yarn packtracker examples: <<: *defaults parallelism: 10 steps: - checkout - attach_workspace: at: . - run: name: examples command: | yarn build-storybooks - persist_to_workspace: root: . paths: - built-storybooks e2e: working_directory: /tmp/storybook docker: - image: cypress/base:8 environment: TERM: xterm steps: - checkout - attach_workspace: at: . - run: name: install cypress command: yarn cypress install - save_cache: name: Cache core dependencies key: core-dependencies-v5-{{ checksum "yarn.lock" }} paths: - ~/.cache - node_modules - /root/.cache - run: name: running example command: yarn serve-storybooks background: true - run: name: await running examples command: yarn await-serve-storybooks - run: name: cypress run command: yarn cypress run smoke-tests: <<: *defaults steps: - checkout - attach_workspace: at: . - run: name: Run react kitchen-sink (smoke test) command: | cd examples/cra-kitchen-sink yarn storybook --smoke-test --quiet - run: name: Run react typescript kitchen-sink (smoke test) command: | cd examples/cra-ts-kitchen-sink yarn storybook --smoke-test --quiet - run: name: Run vue kitchen-sink (smoke test) command: | cd examples/vue-kitchen-sink yarn storybook --smoke-test --quiet - run: name: Run svelte kitchen-sink (smoke test) command: | cd examples/svelte-kitchen-sink yarn storybook --smoke-test --quiet - run: name: Run angular-cli (smoke test) command: | cd examples/angular-cli yarn storybook --smoke-test --quiet - run: name: Run ember-cli (smoke test) command: | cd examples/ember-cli yarn storybook --smoke-test --quiet - run: name: Run marko-cli (smoke test) command: | cd examples/marko-cli yarn storybook --smoke-test --quiet - run: name: Run official-storybook (smoke test) command: | cd examples/official-storybook yarn storybook --smoke-test --quiet - run: name: Run mithril kitchen-sink (smoke test) command: | cd examples/mithril-kitchen-sink yarn storybook --smoke-test --quiet - run: name: Run riot kitchen-sink (smoke test) command: | cd examples/riot-kitchen-sink yarn storybook --smoke-test --quiet - run: name: Run preact kitchen-sink (smoke test) command: | cd examples/preact-kitchen-sink yarn storybook --smoke-test --quiet - run: name: Run cra reac15 (smoke test) command: | cd examples/cra-react15 yarn storybook --smoke-test --quiet frontpage: <<: *defaults steps: - checkout - restore_cache: name: Restore core dependencies cache keys: - core-dependencies-v5-{{ checksum "yarn.lock" }} - run: name: Install dependencies command: yarn bootstrap --install - run: name: Trigger build command: ./scripts/build-frontpage.js docs: <<: *defaults steps: - checkout - restore_cache: name: Restore docs dependencies cache keys: - docs-dependencies-v3-{{ checksum "docs/yarn.lock" }} - run: name: Install dependencies command: | cd docs yarn install - run: name: Build docs command: | cd docs yarn build - save_cache: name: Cache docs dependencies key: docs-dependencies-v3-{{ checksum "docs/yarn.lock" }} paths: - ~/.cache lint: <<: *defaults steps: - checkout - attach_workspace: at: . - run: name: Lint command: yarn lint test: <<: *defaults steps: - checkout - attach_workspace: at: . - run: name: Test command: yarn test --coverage --w2 --core - persist_to_workspace: root: . paths: - coverage coverage: <<: *defaults steps: - checkout - attach_workspace: at: . - run: name: Upload coverage command: yarn coverage workflows: test: jobs: - install - build: requires: - install - lint: requires: - build - examples: requires: - build - e2e: requires: - examples - smoke-tests: requires: - build - packtracker: requires: - build - test: requires: - build - coverage: requires: - test - chromatic: requires: - examples deploy: jobs: - docs - frontpage