config.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. version: 2
  2. aliases:
  3. common: &common
  4. macos:
  5. xcode: 9.0
  6. update-submodules: &update-submodules
  7. run:
  8. name: Update submodules
  9. command: git submodule update --init --recursive
  10. install-dependencies: &install-dependencies
  11. run:
  12. name: Install dependencies
  13. command: .circleci/install_dependencies.sh
  14. run-tests: &run-tests
  15. run:
  16. name: Run tests
  17. command: ./run_tests.py --coverage
  18. upload-coverage: &upload-coverage
  19. run:
  20. name: Upload coverage
  21. command: bash <(curl -s https://codecov.io/bash)
  22. # Increase the version key to clear the cache.
  23. save-cache: &save-cache
  24. save_cache:
  25. key: v2-ycm-{{ .Environment.CIRCLE_JOB }}
  26. paths:
  27. - ~/Library/Caches/Homebrew
  28. - ~/Library/Caches/pip
  29. - ~/.pyenv
  30. restore-cache: &restore-cache
  31. restore_cache:
  32. key: v2-ycm-{{ .Environment.CIRCLE_JOB }}
  33. jobs:
  34. python2:
  35. <<: *common
  36. steps:
  37. - checkout
  38. - *update-submodules
  39. - *restore-cache
  40. - *install-dependencies
  41. - *save-cache
  42. - *run-tests
  43. - *upload-coverage
  44. environment:
  45. YCMD_PYTHON_VERSION: 2.7
  46. python3:
  47. <<: *common
  48. steps:
  49. - checkout
  50. - *update-submodules
  51. - *restore-cache
  52. - *install-dependencies
  53. - *save-cache
  54. - *run-tests
  55. - *upload-coverage
  56. environment:
  57. YCMD_PYTHON_VERSION: 3.5
  58. workflows:
  59. version: 2
  60. build:
  61. jobs:
  62. - python2
  63. - python3