storybook/.circleci/config.yml
2020-03-30 16:55:16 +02:00

294 lines
7.1 KiB
YAML

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