diff --git a/.circleci/config.yml b/.circleci/config.yml index 3089d8b..22fc02a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,35 +1,23 @@ -version: 2.0 +version: 2.1 jobs: - checkout_code: + checkout_and_bundle_dependencies: docker: - image: circleci/ruby:2.4-node - - image: circleci/postgres:9.4.12-alpine working_directory: ~/circleci-demo-workflows steps: - checkout - - save_cache: - key: v1-repo-{{ .Environment.CIRCLE_SHA1 }} - paths: - - ~/circleci-demo-workflows - - bundle_dependencies: - docker: - - image: circleci/ruby:2.4-node - - image: circleci/postgres:9.4.12-alpine - working_directory: ~/circleci-demo-workflows - steps: - restore_cache: - keys: - - v1-repo-{{ .Environment.CIRCLE_SHA1 }} - - restore_cache: - keys: - - v1-bundle-{{ checksum "Gemfile.lock" }} + key: v1-bundle-{{ checksum "Gemfile.lock" }} - run: bundle install --path vendor/bundle - save_cache: key: v1-bundle-{{ checksum "Gemfile.lock" }} paths: - ~/circleci-demo-workflows/vendor/bundle + - persist_to_workspace: + root: . + paths: + - . rake_test: docker: @@ -37,13 +25,8 @@ jobs: - image: circleci/postgres:9.4.12-alpine working_directory: ~/circleci-demo-workflows steps: - - restore_cache: - keys: - - v1-repo-{{ .Environment.CIRCLE_SHA1 }} - - restore_cache: - keys: - - v1-bundle-{{ checksum "Gemfile.lock" }} - - run: bundle --path vendor/bundle + - attach_workspace: + at: . - run: bundle exec rake db:create db:schema:load - run: name: Run tests @@ -52,60 +35,42 @@ jobs: precompile_assets: docker: - image: circleci/ruby:2.4-node - - image: circleci/postgres:9.4.12-alpine working_directory: ~/circleci-demo-workflows steps: - - restore_cache: - keys: - - v1-repo-{{ .Environment.CIRCLE_SHA1 }} - - restore_cache: - keys: - - v1-bundle-{{ checksum "Gemfile.lock" }} - - run: bundle --path vendor/bundle + - attach_workspace: + at: . - run: name: Precompile assets command: bundle exec rake assets:precompile - - save_cache: - key: v1-assets-{{ .Environment.CIRCLE_SHA1 }} + - persist_to_workspace: + root: . paths: - - ~/circleci-demo-workflows/public/assets + - public/assets deploy: machine: enabled: true working_directory: ~/circleci-demo-workflows environment: - - HEROKU_APP: still-shelf-38337 + HEROKU_APP: still-shelf-38337 steps: - - restore_cache: - keys: - - v1-repo-{{ .Environment.CIRCLE_SHA1 }} - - restore_cache: - keys: - - v1-bundle-{{ checksum "Gemfile.lock" }} - - restore_cache: - keys: - - v1-assets-{{ .Environment.CIRCLE_SHA1 }} - - checkout + - attach_workspace: + at: . - run: name: Deploy Master to Heroku command: | git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP.git master - workflows: version: 2 build-and-deploy: jobs: - - checkout_code - - bundle_dependencies: - requires: - - checkout_code + - checkout_and_bundle_dependencies - rake_test: requires: - - bundle_dependencies + - checkout_and_bundle_dependencies - precompile_assets: requires: - - bundle_dependencies + - checkout_and_bundle_dependencies - deploy: requires: - rake_test