version: 2 jobs: build: docker: - image: circleci/ruby:2.6.1-node-browsers working_directory: ~/repo steps: - checkout - setup_remote_docker: reusable: true - run: name: Install dependencies command: | .circleci/install_dep.sh - run: name: Builder command: | rake build -t -v cp -R pkg /tmp - persist_to_workspace: root: /tmp paths: - pkg unit_test: docker: - image: circleci/ruby:2.6.1-node-browsers working_directory: ~/repo steps: - attach_workspace: at: /tmp - checkout - setup_remote_docker: reusable: true - run: name: Install dependencies command: | .circleci/install_dep.sh - run: name: Run unit tests command: | bundle exec rake test -t -v func_test_master: docker: - image: circleci/ruby:2.6.1-node-browsers working_directory: ~/repo steps: - checkout - setup_remote_docker: reusable: true - run: name: trigger command: | .circleci/trigger_func_test.sh master func_test_develop: docker: - image: circleci/ruby:2.6.1-node-browsers working_directory: ~/repo steps: - checkout - setup_remote_docker: reusable: true - run: name: trigger command: | .circleci/trigger_func_test.sh develop release: docker: - image: circleci/ruby:2.6.1-node-browsers working_directory: ~/repo steps: - attach_workspace: at: /tmp - checkout - setup_remote_docker: reusable: true - run: name: Install dependencies command: | .circleci/install_dep.sh - run: name: Build and push docker image to dockerhub command: | .circleci/build_and_push_to_dockerhub.sh - run: name: Upload gem to Github command: | .circleci/build_and_push_to_github_release.sh - run: name: Upload gem to Ruby Gem command: | .circleci/push_gem_to_rubygems.sh check_version: docker: - image: circleci/ruby:2.6.1-node-browsers working_directory: ~/repo steps: - attach_workspace: at: /tmp - checkout - setup_remote_docker: reusable: true - run: name: Check VERSION file for change command: | .circleci/check_version_trigger_release.sh workflows: version: 2 build_test_push: jobs: - build: filters: branches: ignore: - /^release\/.*/ - master - unit_test: requires: - build - func_test_master: requires: - unit_test - func_test_develop: requires: - unit_test - check_version: requires: - func_test_master - func_test_develop filters: branches: only: develop release: jobs: - build: filters: branches: only: master - unit_test: requires: - build - func_test_master: requires: - unit_test - func_test_develop: requires: - unit_test - release: requires: - func_test_master - func_test_develop