1
0
mirror of https://github.com/SomboChea/ui synced 2024-11-05 06:04:28 +07:00
verdaccio-ui/.circleci/config.yml
Juan Picado @jotadeveloper d1b3e6e3b5
build: e2e integration with puppeteer (#192)
* build: add e2e testing scripts

* build: add e2e testing scripts

* chore: fix script

* chore: fix script

* chore: ignore e2e normal test

* chore: fix node_latest_browser

* chore: move lint to prepare

* chore: fix lint

* chore: add local theme

* fix: e2e tests
2019-10-13 10:27:01 +02:00

175 lines
3.8 KiB
YAML

version: 2
aliases:
- &repo_path
~/ui-theme
- &defaults
working_directory: *repo_path
- &node_latest_browser
docker:
- image: circleci/node:latest-browsers
- &node_latest_executor
docker:
- image: circleci/node:latest
- &node_lts_executor
docker:
- image: circleci/node:lts
- &default_executor
<<: *node_latest_executor
- &yarn_cache_key
yarn-sha-{{ checksum "yarn.lock" }}
- &coverage_key
coverage-{{ .Branch }}-{{ .Revision }}
- &restore_repo
attach_workspace:
at: *repo_path
- &ignore_non_dev_branches
filters:
tags:
only: /.*/
branches:
ignore:
- /release\/.*/
- &execute_on_release
filters:
tags:
only: /v?[0-9]+(\.[0-9]+)*([-+\.][a-zA-Z0-9]+)*/
branches:
ignore:
- /.*/
jobs:
prepare:
<<: *defaults
<<: *default_executor
steps:
- *restore_repo
- checkout
- restore_cache:
key: *yarn_cache_key
- run:
name: Install dependencies
command: yarn install --frozen-lockfile
- run:
name: Lint code
command: yarn lint
- run:
name: Build project
command: yarn build
- save_cache:
key: *yarn_cache_key
paths:
- ~/.yarn
- ~/.cache/yarn
- node_modules
- persist_to_workspace:
root: *repo_path
paths:
- ./*
test_bundlesize:
<<: *defaults
<<: *default_executor
steps:
- *restore_repo
- run:
name: Test BundleSize
command: yarn test:size
test_node_latest:
<<: *defaults
<<: *node_latest_executor
steps:
- *restore_repo
- run:
name: Test with Node (Latest)
command: yarn test
- save_cache:
key: *coverage_key
paths:
- coverage
test_e2e:
<<: *defaults
<<: *node_latest_browser
steps:
- *restore_repo
- run:
name: Test E2E Node (LTS)
command: yarn test:e2e
test_node_lts:
<<: *defaults
<<: *node_lts_executor
steps:
- *restore_repo
- run:
name: Test with Node (LTS)
command: yarn test
coverage:
<<: *defaults
<<: *default_executor
steps:
- *restore_repo
- restore_cache:
key: *coverage_key
- run:
name: Publish coverage
command: yarn run coverage:publish
- store_artifacts:
path: coverage/clover.xml
prefix: tests
- store_artifacts:
path: coverage
prefix: coverage
- store_test_results:
path: coverage/clover.xml
publish_package:
<<: *defaults
<<: *default_executor
steps:
- *restore_repo
- run:
name: 'Setup publish credentials'
command: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
- run:
name: Publish
command: yarn publish
workflows:
version: 2
workflow:
jobs:
- prepare:
<<: *ignore_non_dev_branches
- test_bundlesize:
requires:
- prepare
<<: *ignore_non_dev_branches
- test_node_latest:
requires:
- prepare
<<: *ignore_non_dev_branches
- test_node_lts:
requires:
- prepare
<<: *ignore_non_dev_branches
- test_e2e:
requires:
- prepare
<<: *ignore_non_dev_branches
- coverage:
requires:
- test_node_latest
<<: *ignore_non_dev_branches
- publish_package:
requires:
- test_bundlesize
- test_node_latest
- test_node_lts
- test_e2e
- coverage
<<: *execute_on_release