The code powering m.abunchtell.com https://m.abunchtell.com
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 

219 rindas
5.6 KiB

  1. version: 2
  2. aliases:
  3. - &defaults
  4. docker:
  5. - image: circleci/ruby:2.5.1-stretch-node
  6. environment: &ruby_environment
  7. BUNDLE_APP_CONFIG: ./.bundle/
  8. DB_HOST: localhost
  9. DB_USER: root
  10. RAILS_ENV: test
  11. PARALLEL_TEST_PROCESSORS: 4
  12. ALLOW_NOPAM: true
  13. CONTINUOUS_INTEGRATION: true
  14. DISABLE_SIMPLECOV: true
  15. working_directory: ~/projects/mastodon/
  16. - &attach_workspace
  17. attach_workspace:
  18. at: ~/projects/
  19. - &persist_to_workspace
  20. persist_to_workspace:
  21. root: ~/projects/
  22. paths:
  23. - ./mastodon/
  24. - &restore_ruby_dependencies
  25. restore_cache:
  26. keys:
  27. - v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }}
  28. - v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-
  29. - v2-ruby-dependencies-
  30. - &install_steps
  31. steps:
  32. - checkout
  33. - *attach_workspace
  34. - restore_cache:
  35. keys:
  36. - v1-node-dependencies-{{ checksum "yarn.lock" }}
  37. - v1-node-dependencies-
  38. - run: yarn install --frozen-lockfile
  39. - save_cache:
  40. key: v1-node-dependencies-{{ checksum "yarn.lock" }}
  41. paths:
  42. - ./node_modules/
  43. - *persist_to_workspace
  44. - &install_system_dependencies
  45. run:
  46. name: Install system dependencies
  47. command: |
  48. sudo apt-get update
  49. sudo apt-get install -y libicu-dev libidn11-dev libprotobuf-dev protobuf-compiler
  50. - &install_ruby_dependencies
  51. steps:
  52. - *attach_workspace
  53. - *install_system_dependencies
  54. - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
  55. - *restore_ruby_dependencies
  56. - run: bundle install --clean --jobs 16 --path ./vendor/bundle/ --retry 3 --with pam_authentication --without development production
  57. - save_cache:
  58. key: v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }}
  59. paths:
  60. - ./.bundle/
  61. - ./vendor/bundle/
  62. - &test_steps
  63. steps:
  64. - *attach_workspace
  65. - *install_system_dependencies
  66. - run: sudo apt-get install -y ffmpeg
  67. - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
  68. - *restore_ruby_dependencies
  69. - restore_cache:
  70. keys:
  71. - precompiled-assets-{{ .Branch }}-{{ .Revision }}
  72. - precompiled-assets-{{ .Branch }}-
  73. - precompiled-assets-
  74. - run:
  75. name: Prepare Tests
  76. command: ./bin/rails parallel:create parallel:load_schema parallel:prepare
  77. - run:
  78. name: Run Tests
  79. command: ./bin/retry bundle exec parallel_test ./spec/ --group-by filesize --type rspec
  80. jobs:
  81. install:
  82. <<: *defaults
  83. <<: *install_steps
  84. install-ruby2.5:
  85. <<: *defaults
  86. <<: *install_ruby_dependencies
  87. install-ruby2.4:
  88. <<: *defaults
  89. docker:
  90. - image: circleci/ruby:2.4.4-stretch-node
  91. environment: *ruby_environment
  92. <<: *install_ruby_dependencies
  93. install-ruby2.3:
  94. <<: *defaults
  95. docker:
  96. - image: circleci/ruby:2.3.7-stretch-node
  97. environment: *ruby_environment
  98. <<: *install_ruby_dependencies
  99. build:
  100. <<: *defaults
  101. steps:
  102. - *attach_workspace
  103. - *install_system_dependencies
  104. - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
  105. - *restore_ruby_dependencies
  106. - run: ./bin/rails assets:precompile
  107. - save_cache:
  108. key: precompiled-assets-{{ .Branch }}-{{ .Revision }}
  109. paths:
  110. - ./public/assets
  111. - ./public/packs-test/
  112. test-ruby2.5:
  113. <<: *defaults
  114. docker:
  115. - image: circleci/ruby:2.5.1-stretch-node
  116. environment: *ruby_environment
  117. - image: circleci/postgres:10.3-alpine
  118. environment:
  119. POSTGRES_USER: root
  120. - image: circleci/redis:4.0.9-alpine
  121. <<: *test_steps
  122. test-ruby2.4:
  123. <<: *defaults
  124. docker:
  125. - image: circleci/ruby:2.4.4-stretch-node
  126. environment: *ruby_environment
  127. - image: circleci/postgres:10.3-alpine
  128. environment:
  129. POSTGRES_USER: root
  130. - image: circleci/redis:4.0.9-alpine
  131. <<: *test_steps
  132. test-ruby2.3:
  133. <<: *defaults
  134. docker:
  135. - image: circleci/ruby:2.3.7-stretch-node
  136. environment: *ruby_environment
  137. - image: circleci/postgres:10.3-alpine
  138. environment:
  139. POSTGRES_USER: root
  140. - image: circleci/redis:4.0.9-alpine
  141. <<: *test_steps
  142. test-webui:
  143. <<: *defaults
  144. docker:
  145. - image: circleci/node:8.11.1-stretch
  146. steps:
  147. - *attach_workspace
  148. - run: ./bin/retry yarn test:jest
  149. check-i18n:
  150. <<: *defaults
  151. steps:
  152. - *attach_workspace
  153. - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
  154. - *restore_ruby_dependencies
  155. - run: bundle exec i18n-tasks check-normalized
  156. - run: bundle exec i18n-tasks unused
  157. workflows:
  158. version: 2
  159. build-and-test:
  160. jobs:
  161. - install
  162. - install-ruby2.5:
  163. requires:
  164. - install
  165. - install-ruby2.4:
  166. requires:
  167. - install
  168. - install-ruby2.3:
  169. requires:
  170. - install
  171. - build:
  172. requires:
  173. - install-ruby2.5
  174. - test-ruby2.5:
  175. requires:
  176. - install-ruby2.5
  177. - build
  178. - test-ruby2.4:
  179. requires:
  180. - install-ruby2.4
  181. - build
  182. - test-ruby2.3:
  183. requires:
  184. - install-ruby2.3
  185. - build
  186. - test-webui:
  187. requires:
  188. - install
  189. - check-i18n:
  190. requires:
  191. - install-ruby2.5