version: 2.1 orbs: gem: doximity/gem-publisher@0 executors: ruby-2-6: resource_class: small docker: - image: cimg/ruby:2.6 environment: BUNDLE_VERSION: "~> 1.17" # yaml anchor filters master_only: &master_only filters: branches: only: master tags: ignore: /.*/ pr_only: &pr_only filters: branches: ignore: master tags: ignore: /.*/ version_tags_only: &version_tags_only filters: branches: ignore: /.*/ tags: only: /^v.*/ jobs: build: executor: ruby-2-6 steps: - checkout - run: name: Install Bundler specific version command: | gem install bundler --version "${BUNDLE_VERSION}" --force - restore_cache: keys: - v1-bundle-{{ checksum "Gemfile.lock" }}- - run: name: Install Ruby Dependencies command: | bundle config set --local path 'vendor/bundle' bundle config set --local frozen 'true' bundle install --local --jobs=4 --retry=3 - save_cache: key: v1-bundle-{{ checksum "Gemfile.lock" }}- paths: - vendor/bundle - run: name: Run Tests command: bundle exec rake ci:specs - store_test_results: name: Store test results path: tmp/test-results - run: name: Run StandardRB command: bundle exec standardrb - persist_to_workspace: root: . paths: - vendor/bundle workflows: version: 2 trunk: jobs: - build: <<: *master_only - gem/build: <<: *master_only executor: ruby-2-6 name: gem-build requires: - build pull-requests: jobs: - build: <<: *pr_only - gem/build: <<: *pr_only executor: ruby-2-6 name: gem-build requires: - build - pre-release-approval: <<: *pr_only type: approval requires: - gem-build - gem/publish: <<: *pr_only name: gem-publish to_rubygems: true pre_release: true requires: - pre-release-approval context: artifact_publishing final-release: jobs: - build: <<: *version_tags_only - gem/build: <<: *version_tags_only executor: ruby-2-6 name: gem-build requires: - build - gem/publish: <<: *version_tags_only name: gem-publish to_rubygems: true pre_release: false requires: - gem-build context: artifact_publishing