config.yml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. version: 2
  2. # 2.1 does not yet support local run
  3. # unless with workaround. For simplicity just use it.
  4. # https://github.com/CircleCI-Public/circleci-cli/issues/79
  5. aliases:
  6. - &defaults
  7. docker:
  8. - image: circleci/node:8
  9. - &npm_install_if_necessary
  10. run:
  11. name: Install npm dependencies
  12. command: |
  13. if [ ! -d node_modules ]; then
  14. npm ci
  15. fi
  16. - &cache_key_node_modules
  17. key: v1-node_modules-{{ checksum "package-lock.json" }}
  18. jobs:
  19. dependencies:
  20. <<: *defaults
  21. steps:
  22. - checkout
  23. - restore_cache:
  24. <<: *cache_key_node_modules
  25. - *npm_install_if_necessary
  26. - save_cache:
  27. paths:
  28. - node_modules
  29. <<: *cache_key_node_modules
  30. lint:
  31. <<: *defaults
  32. steps:
  33. - checkout
  34. - restore_cache:
  35. <<: *cache_key_node_modules
  36. - *npm_install_if_necessary
  37. - run:
  38. name: Linter
  39. command: npm run lint
  40. test:
  41. <<: *defaults
  42. steps:
  43. - checkout
  44. - restore_cache:
  45. <<: *cache_key_node_modules
  46. - *npm_install_if_necessary
  47. - run:
  48. name: Unit tests
  49. command: npm run test
  50. coverage:
  51. <<: *defaults
  52. steps:
  53. - checkout
  54. - restore_cache:
  55. <<: *cache_key_node_modules
  56. - *npm_install_if_necessary
  57. - run:
  58. name: Unit tests with coverage report
  59. command: npm run coverage
  60. # TODO(xinbenlv, #1839): run SOLC_NIGHTLY to be run but allow it to fail.
  61. workflows:
  62. version: 2
  63. everything:
  64. jobs:
  65. - dependencies
  66. - lint:
  67. requires:
  68. - dependencies
  69. - test:
  70. requires:
  71. - dependencies
  72. - coverage:
  73. requires:
  74. - dependencies