config.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. docker:
  52. - image: circleci/node:8
  53. steps:
  54. - checkout
  55. - restore_cache:
  56. <<: *cache_key_node_modules
  57. - *npm_install_if_necessary
  58. - run:
  59. name: Unit tests with coverage report
  60. command: npm run test
  61. environment:
  62. SOLIDITY_COVERAGE: true
  63. # TODO(xinbenlv, #1839): run SOLC_NIGHTLY to be run but allow it to fail.
  64. workflows:
  65. version: 2
  66. everything:
  67. jobs:
  68. - dependencies
  69. - lint:
  70. requires:
  71. - dependencies
  72. - test:
  73. requires:
  74. - dependencies
  75. - coverage:
  76. requires:
  77. - dependencies