version: 2.0 jobs: bundle_dependencies: docker: - image: circleci/ruby:2.4-node - image: circleci/postgres:9.4.12-alpine steps: - checkout - restore_cache: keys: - v1-bundle-{{ checksum "Gemfile.lock" }} - v1-bundle- - run: bundle install --path vendor/bundle - save_cache: key: v1-bundle-{{ checksum "Gemfile.lock" }} paths: - ~/circleci-demo-workflows/vendor/bundle rake_test: docker: - image: circleci/ruby:2.4-node - image: circleci/postgres:9.4.12-alpine steps: - checkout - restore_cache: keys: - v1-bundle-{{ checksum "Gemfile.lock" }} - v1-bundle- - run: bundle --path vendor/bundle - run: bundle exec rake db:create db:schema:load - run: name: Run tests command: bundle exec rake precompile_assets: docker: - image: circleci/ruby:2.4-node - image: circleci/postgres:9.4.12-alpine steps: - checkout - restore_cache: keys: - v1-bundle-{{ checksum "Gemfile.lock" }} - v1-bundle- - run: bundle --path vendor/bundle - run: name: Precompile assets command: bundle exec rake assets:precompile - save_cache: key: v1-assets-{{ checksum ".circle-sha" }} paths: - ~/circleci-demo-workflows/public/assets deploy: machine: enabled: true steps: - checkout - restore_cache: keys: - v1-bundle-{{ checksum "Gemfile.lock" }} - v1-bundle- - restore_cache: keys: - v1-assets-{{ checksum ".circle-sha" }} - run: name: Deploy to heroku command: echo stub for Heroku deploy workflows: version: 2 blog-demo-1: jobs: - bundle_dependencies - rake_test: requires: - bundle_dependencies - precompile_assets: requires: - bundle_dependencies - deploy: requires: - rake_test - precompile_assets