about summary refs log tree commit diff
path: root/.circleci/config.yml
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2018-08-18 04:05:42 +0200
committerEugen Rochko <eugen@zeonfederated.com>2018-08-18 04:05:42 +0200
commit5059989cc743e18f05e3f5f95ad557d7f7f34afd (patch)
treee33323cdc730a3facbde372bbe78ed528d6d3eba /.circleci/config.yml
parentedb1de780060a0d62bc57153d743002c0a8bde67 (diff)
Use CircleCI workflows for ruby dependencies (#8228)
* Add “bundle clean” suggestion from CircleCI doc

Cf. https://circleci.com/docs/2.0/caching/#bundler-ruby

* Use workspaces instead of caches for ruby gems

Cache are not guaranteed to be available, while the test jobs *require* their
depencies to run. Workspaces are thus more suitable.

One downside is that the order of workspace layer additions need to be
deterministic, which is why install-ruby{2.3,2.4} now depend on
install-ruby2.5.
Diffstat (limited to '.circleci/config.yml')
-rw-r--r--.circleci/config.yml16
1 files changed, 8 insertions, 8 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index ac8dfc334..20688b8e9 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -64,12 +64,17 @@ aliases:
 
         - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
         - *restore_ruby_dependencies
-        - run: bundle install --clean --jobs 16 --path ./vendor/bundle/ --retry 3 --with pam_authentication --without development production
+        - run: bundle install --clean --jobs 16 --path ./vendor/bundle/ --retry 3 --with pam_authentication --without development production && bundle clean
         - save_cache:
             key: v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }}
             paths:
               - ./.bundle/
               - ./vendor/bundle/
+        - persist_to_workspace:
+            root: ~/projects/
+            paths:
+                - ./mastodon/.bundle/
+                - ./mastodon/vendor/bundle/
 
   - &test_steps
       steps:
@@ -78,9 +83,6 @@ aliases:
         - *install_system_dependencies
         - run: sudo apt-get install -y ffmpeg
 
-        - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
-        - *restore_ruby_dependencies
-
         - run:
             name: Prepare Tests
             command: ./bin/rails parallel:create parallel:load_schema parallel:prepare
@@ -116,8 +118,6 @@ jobs:
     steps:
       - *attach_workspace
       - *install_system_dependencies
-      - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
-      - *restore_ruby_dependencies
       - run: ./bin/rails assets:precompile
       - persist_to_workspace:
           root: ~/projects/
@@ -170,8 +170,6 @@ jobs:
     <<: *defaults
     steps:
       - *attach_workspace
-      - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version
-      - *restore_ruby_dependencies
       - run: bundle exec i18n-tasks check-normalized
       - run: bundle exec i18n-tasks unused
 
@@ -186,9 +184,11 @@ workflows:
       - install-ruby2.4:
           requires:
             - install
+            - install-ruby2.5
       - install-ruby2.3:
           requires:
             - install
+            - install-ruby2.5
       - build:
           requires:
             - install-ruby2.5