1
0
mirror of https://github.com/SomboChea/ui synced 2024-11-05 14:14:26 +07:00

ci(circleci): improve workflow and add linting

This commit is contained in:
Sergio Herrera Guzmán 2019-09-11 13:54:41 +02:00
parent 7853ec2acb
commit 3309e449d1

View File

@ -1,31 +1,28 @@
version: 2 version: 2
aliases: aliases:
- &repo_path
~/ui-theme
- &defaults - &defaults
working_directory: ~/ui-theme working_directory: *repo_path
- &node11_executor - &node_latest_executor
docker: docker:
- image: circleci/node:11.10.1 - image: circleci/node:latest
- &node8_executor - &node_lts_executor
docker:
- image: circleci/node:lts
- &node_8_executor
docker: docker:
- image: circleci/node:8 - image: circleci/node:8
- &node10_executor
docker:
- image: circleci/node:10
- &default_executor - &default_executor
<<: *node10_executor <<: *node_latest_executor
- &repo_key
repo-{{ .Branch }}-{{ .Revision }}
- &coverage_key
coverage-{{ .Branch }}-{{ .Revision }}
- &base_config_key
base-config-{{ .Branch }}-{{ .Revision }}
- &yarn_cache_key - &yarn_cache_key
yarn-sha-{{ checksum "yarn.lock" }} yarn-sha-{{ checksum "yarn.lock" }}
- &coverage_key
coverage-{{ .Branch }}-{{ .Revision }}
- &restore_repo - &restore_repo
restore_cache: attach_workspace:
keys: at: *repo_path
- *repo_key
- &ignore_non_dev_branches - &ignore_non_dev_branches
filters: filters:
tags: tags:
@ -36,7 +33,7 @@ aliases:
- &execute_on_release - &execute_on_release
filters: filters:
tags: tags:
only: /(v)?[0-9]+(\.[0-9]+)*/ only: /v?[0-9]+(\.[0-9]+)*([-+\.][a-zA-Z0-9]+)*/
branches: branches:
ignore: ignore:
- /.*/ - /.*/
@ -48,21 +45,11 @@ jobs:
steps: steps:
- *restore_repo - *restore_repo
- checkout - checkout
- restore_cache:
key: *base_config_key
- run:
name: 'Base environment setup'
command: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
- save_cache:
key: *base_config_key
paths:
- ~/.npmrc
- ~/.gitconfig
- restore_cache: - restore_cache:
key: *yarn_cache_key key: *yarn_cache_key
- run: - run:
name: Install Js dependencies name: Install dependencies
command: yarn install --no-progress --registry https://registry.verdaccio.org --no-lockfile command: yarn install --frozen-lockfile
- run: - run:
name: Build project name: Build project
command: yarn run build command: yarn run build
@ -72,10 +59,20 @@ jobs:
- ~/.yarn - ~/.yarn
- ~/.cache/yarn - ~/.cache/yarn
- node_modules - node_modules
- save_cache: - persist_to_workspace:
key: *repo_key root: *repo_path
paths: paths:
- ~/ui-theme - ./*
lint:
<<: *defaults
<<: *default_executor
steps:
- *restore_repo
- run:
name: Lint code
command: yarn lint
test_bundlesize: test_bundlesize:
<<: *defaults <<: *defaults
<<: *default_executor <<: *default_executor
@ -85,37 +82,37 @@ jobs:
name: Test BundleSize name: Test BundleSize
command: yarn test:size command: yarn test:size
test_node11: test_node_latest:
<<: *defaults <<: *defaults
<<: *node11_executor <<: *node_latest_executor
steps: steps:
- *restore_repo - *restore_repo
- run: - run:
name: Test with Node 11 name: Test with Node (Latest)
command: yarn test command: yarn test
test_node8:
<<: *defaults
<<: *node8_executor
steps:
- *restore_repo
- run:
name: Test with Node 8
command: yarn test
test_node10:
<<: *defaults
<<: *node10_executor
steps:
- *restore_repo
- run:
name: Test with Node 10
command: yarn run test
- save_cache: - save_cache:
key: *coverage_key key: *coverage_key
paths: paths:
- coverage - coverage
test_node_lts:
<<: *defaults
<<: *node_lts_executor
steps:
- *restore_repo
- run:
name: Test with Node (LTS)
command: yarn test
test_node_8:
<<: *defaults
<<: *node_8_executor
steps:
- *restore_repo
- run:
name: Test with Node (8)
command: yarn run test
coverage: coverage:
<<: *defaults <<: *defaults
<<: *default_executor <<: *default_executor
@ -140,8 +137,9 @@ jobs:
<<: *default_executor <<: *default_executor
steps: steps:
- *restore_repo - *restore_repo
- restore_cache: - run:
key: *base_config_key name: 'Setup publish credentials'
command: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
- run: - run:
name: Publish name: Publish
command: yarn publish command: yarn publish
@ -152,29 +150,36 @@ workflows:
jobs: jobs:
- prepare: - prepare:
<<: *ignore_non_dev_branches <<: *ignore_non_dev_branches
- test_node11: - lint:
requires:
- prepare
<<: *ignore_non_dev_branches
- test_node8:
requires:
- prepare
<<: *ignore_non_dev_branches
- test_node10:
requires: requires:
- prepare - prepare
<<: *ignore_non_dev_branches <<: *ignore_non_dev_branches
- test_bundlesize: - test_bundlesize:
requires: requires:
- test_node11 - prepare
- test_node8 <<: *ignore_non_dev_branches
- test_node10 - test_node_latest:
requires:
- prepare
<<: *ignore_non_dev_branches
- test_node_lts:
requires:
- prepare
<<: *ignore_non_dev_branches
- test_node_8:
requires:
- prepare
<<: *ignore_non_dev_branches <<: *ignore_non_dev_branches
- coverage: - coverage:
requires: requires:
- test_bundlesize - test_node_latest
<<: *ignore_non_dev_branches <<: *ignore_non_dev_branches
- publish_package: - publish_package:
requires: requires:
- lint
- test_bundlesize
- test_node_latest
- test_node_lts
- test_node_8
- coverage - coverage
<<: *execute_on_release <<: *execute_on_release