From 64df7f360ea99aea5df9f582fb6e74b7e417ba24 Mon Sep 17 00:00:00 2001 From: Martin Holman Date: Thu, 10 Oct 2019 14:43:40 -0700 Subject: [PATCH] Switch to Circle CI (#38) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convert our travis config to circle config. It ended up being a giant config file which seems very error prone. If anyone has any ideas for how to make this easier it would be much appreciated 🙏 --- .../bundler_version.sh | 3 +- .circleci/config.yml | 445 ++++++++++++++++++ .travis.yml | 57 --- README.md | 2 +- 4 files changed, 447 insertions(+), 60 deletions(-) rename bundler_version.sh => .circleci/bundler_version.sh (53%) create mode 100644 .circleci/config.yml delete mode 100644 .travis.yml diff --git a/bundler_version.sh b/.circleci/bundler_version.sh similarity index 53% rename from bundler_version.sh rename to .circleci/bundler_version.sh index aa012435..31f6af60 100755 --- a/bundler_version.sh +++ b/.circleci/bundler_version.sh @@ -3,7 +3,6 @@ set -ux if [[ "$BUNDLE_GEMFILE" =~ (rails_41.gemfile|rails_42.gemfile)$ ]]; then - gem uninstall -v '>= 2' -i $(rvm gemdir) -ax bundler - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler + gem uninstall -v '>= 2' -ax bundler gem install bundler -v '< 2' fi diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..015ba26f --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,445 @@ +version: 2.1 + +# required as all of the jobs need to have a tag filter for some reason +tag_filters: &tag_filters + filters: + tags: + only: /.*/ + +executors: + ruby-two-three: + docker: + - image: ruby:2.3 + ruby-two-four: + docker: + - image: ruby:2.4 + ruby-two-five: + docker: + - image: ruby:2.5 + ruby-two-six: + docker: + - image: ruby:2.6 + +commands: + ruby: + parameters: + gemfile: + type: string + default: Gemfile + command: + type: string + default: bundle exec rake test + steps: + - checkout + - restore_cache: + keys: + - gems-{{ checksum "Gemfile.lock" }} + - gems- + - run: gem update bundler + - run: BUNDLE_GEMFILE=<< parameters.gemfile >> ./.circleci/bundler_version.sh + - run: BUNDLE_GEMFILE=<< parameters.gemfile >> bundle install --jobs=4 --retry=3 --path vendor/bundle + - save_cache: + paths: + - ./vendor/bundle + key: gems-{{ checksum "Gemfile.lock" }} + - run: BUNDLE_GEMFILE=<< parameters.gemfile >> << parameters.command >> + +gemfiles: + faraday: &faraday + steps: + - ruby: + gemfile: gemfiles/faraday.gemfile + sequel-four: &sequel-four + steps: + - ruby: + gemfile: gemfiles/sequel4.gemfile + sequel-five: &sequel-five + steps: + - ruby: + gemfile: gemfiles/sequel5.gemfile + sinatra: &sinatra + steps: + - ruby: + gemfile: gemfiles/sinatra.gemfile + rack: &rack + steps: + - ruby: + gemfile: gemfiles/rack.gemfile + rails-four-one: &rails-four-one + steps: + - ruby: + gemfile: gemfiles/rails_41.gemfile + rails-four-two: &rails-four-two + steps: + - ruby: + gemfile: gemfiles/rails_42.gemfile + rails-five: &rails-five + steps: + - ruby: + gemfile: gemfiles/rails_5.gemfile + rails-five-one: &rails-five-one + steps: + - ruby: + gemfile: gemfiles/rails_51.gemfile + rails-five-two: &rails-five-two + steps: + - ruby: + gemfile: gemfiles/rails_52.gemfile + rails-six: &rails-six + steps: + - ruby: + gemfile: gemfiles/rails_6.gemfile + +jobs: + publish: + executor: ruby-two-six + steps: + - checkout + - run: gem build honeycomb-beeline.gemspec + - run: gem push honeycomb-beeline-*.gem + lint: + executor: ruby-two-six + steps: + - ruby: + command: bundle exec rake rubocop + faraday-ruby-two-three: + <<: *faraday + executor: ruby-two-three + faraday-ruby-two-four: + <<: *faraday + executor: ruby-two-four + faraday-ruby-two-five: + <<: *faraday + executor: ruby-two-five + faraday-ruby-two-six: + <<: *faraday + executor: ruby-two-six + sequel-four-ruby-two-three: + <<: *sequel-four + executor: ruby-two-three + sequel-four-ruby-two-four: + <<: *sequel-four + executor: ruby-two-four + sequel-four-ruby-two-five: + <<: *sequel-four + executor: ruby-two-five + sequel-four-ruby-two-six: + <<: *sequel-four + executor: ruby-two-six + sequel-five-ruby-two-three: + <<: *sequel-five + executor: ruby-two-three + sequel-five-ruby-two-four: + <<: *sequel-five + executor: ruby-two-four + sequel-five-ruby-two-five: + <<: *sequel-five + executor: ruby-two-five + sequel-five-ruby-two-six: + <<: *sequel-five + executor: ruby-two-six + sinatra-ruby-two-three: + <<: *sinatra + executor: ruby-two-three + sinatra-ruby-two-four: + <<: *sinatra + executor: ruby-two-four + sinatra-ruby-two-five: + <<: *sinatra + executor: ruby-two-five + sinatra-ruby-two-six: + <<: *sinatra + executor: ruby-two-six + rack-ruby-two-three: + <<: *rack + executor: ruby-two-three + rack-ruby-two-four: + <<: *rack + executor: ruby-two-four + rack-ruby-two-five: + <<: *rack + executor: ruby-two-five + rack-ruby-two-six: + <<: *rack + executor: ruby-two-six + rails-four-one-ruby-two-three: + <<: *rails-four-one + executor: ruby-two-three + rails-four-one-ruby-two-four: + <<: *rails-four-one + executor: ruby-two-four + rails-four-one-ruby-two-five: + <<: *rails-four-one + executor: ruby-two-five + rails-four-one-ruby-two-six: + <<: *rails-four-one + executor: ruby-two-six + rails-four-two-ruby-two-three: + <<: *rails-four-two + executor: ruby-two-three + rails-four-two-ruby-two-four: + <<: *rails-four-two + executor: ruby-two-four + rails-four-two-ruby-two-five: + <<: *rails-four-two + executor: ruby-two-five + rails-four-two-ruby-two-six: + <<: *rails-four-two + executor: ruby-two-six + rails-five-ruby-two-three: + <<: *rails-five + executor: ruby-two-three + rails-five-ruby-two-four: + <<: *rails-five + executor: ruby-two-four + rails-five-ruby-two-five: + <<: *rails-five + executor: ruby-two-five + rails-five-ruby-two-six: + <<: *rails-five + executor: ruby-two-six + rails-five-one-ruby-two-three: + <<: *rails-five-one + executor: ruby-two-three + rails-five-one-ruby-two-four: + <<: *rails-five-one + executor: ruby-two-four + rails-five-one-ruby-two-five: + <<: *rails-five-one + executor: ruby-two-five + rails-five-one-ruby-two-six: + <<: *rails-five-one + executor: ruby-two-six + rails-five-two-ruby-two-three: + <<: *rails-five-two + executor: ruby-two-three + rails-five-two-ruby-two-four: + <<: *rails-five-two + executor: ruby-two-four + rails-five-two-ruby-two-five: + <<: *rails-five-two + executor: ruby-two-five + rails-five-two-ruby-two-six: + <<: *rails-five-two + executor: ruby-two-six + rails-six-ruby-two-three: + <<: *rails-six + executor: ruby-two-three + rails-six-ruby-two-four: + <<: *rails-six + executor: ruby-two-four + rails-six-ruby-two-five: + <<: *rails-six + executor: ruby-two-five + rails-six-ruby-two-six: + <<: *rails-six + executor: ruby-two-six + +workflows: + version: 2 + beeline: + jobs: + - lint + - faraday-ruby-two-three: + <<: *tag_filters + requires: + - lint + - faraday-ruby-two-four: + <<: *tag_filters + requires: + - lint + - faraday-ruby-two-five: + <<: *tag_filters + requires: + - lint + - faraday-ruby-two-six: + <<: *tag_filters + requires: + - lint + - sequel-four-ruby-two-three: + <<: *tag_filters + requires: + - lint + - sequel-four-ruby-two-four: + <<: *tag_filters + requires: + - lint + - sequel-four-ruby-two-five: + <<: *tag_filters + requires: + - lint + - sequel-four-ruby-two-six: + <<: *tag_filters + requires: + - lint + - sequel-five-ruby-two-three: + <<: *tag_filters + requires: + - lint + - sequel-five-ruby-two-four: + <<: *tag_filters + requires: + - lint + - sequel-five-ruby-two-five: + <<: *tag_filters + requires: + - lint + - sequel-five-ruby-two-six: + <<: *tag_filters + requires: + - lint + - sinatra-ruby-two-three: + <<: *tag_filters + requires: + - lint + - sinatra-ruby-two-four: + <<: *tag_filters + requires: + - lint + - sinatra-ruby-two-five: + <<: *tag_filters + requires: + - lint + - sinatra-ruby-two-six: + <<: *tag_filters + requires: + - lint + - rack-ruby-two-three: + <<: *tag_filters + requires: + - lint + - rack-ruby-two-four: + <<: *tag_filters + requires: + - lint + - rack-ruby-two-five: + <<: *tag_filters + requires: + - lint + - rack-ruby-two-six: + <<: *tag_filters + requires: + - lint + - rails-four-one-ruby-two-three: + <<: *tag_filters + requires: + - lint + - rails-four-two-ruby-two-three: + <<: *tag_filters + requires: + - lint + - rails-four-two-ruby-two-four: + <<: *tag_filters + requires: + - lint + - rails-four-two-ruby-two-five: + <<: *tag_filters + requires: + - lint + - rails-four-two-ruby-two-six: + <<: *tag_filters + requires: + - lint + - rails-five-ruby-two-three: + <<: *tag_filters + requires: + - lint + - rails-five-ruby-two-four: + <<: *tag_filters + requires: + - lint + - rails-five-ruby-two-five: + <<: *tag_filters + requires: + - lint + - rails-five-ruby-two-six: + <<: *tag_filters + requires: + - lint + - rails-five-one-ruby-two-three: + <<: *tag_filters + requires: + - lint + - rails-five-one-ruby-two-four: + <<: *tag_filters + requires: + - lint + - rails-five-one-ruby-two-five: + <<: *tag_filters + requires: + - lint + - rails-five-one-ruby-two-six: + <<: *tag_filters + requires: + - lint + - rails-five-two-ruby-two-three: + <<: *tag_filters + requires: + - lint + - rails-five-two-ruby-two-four: + <<: *tag_filters + requires: + - lint + - rails-five-two-ruby-two-five: + <<: *tag_filters + requires: + - lint + - rails-five-two-ruby-two-six: + <<: *tag_filters + requires: + - lint + - rails-six-ruby-two-five: + <<: *tag_filters + requires: + - lint + - rails-six-ruby-two-six: + <<: *tag_filters + requires: + - lint + - publish: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + requires: + - lint + - faraday-ruby-two-three + - faraday-ruby-two-four + - faraday-ruby-two-five + - faraday-ruby-two-six + - sequel-four-ruby-two-three + - sequel-four-ruby-two-four + - sequel-four-ruby-two-five + - sequel-four-ruby-two-six + - sequel-five-ruby-two-three + - sequel-five-ruby-two-four + - sequel-five-ruby-two-five + - sequel-five-ruby-two-six + - sinatra-ruby-two-three + - sinatra-ruby-two-four + - sinatra-ruby-two-five + - sinatra-ruby-two-six + - rack-ruby-two-three + - rack-ruby-two-four + - rack-ruby-two-five + - rack-ruby-two-six + - rails-four-one-ruby-two-three + - rails-four-two-ruby-two-three + - rails-four-two-ruby-two-four + - rails-four-two-ruby-two-five + - rails-four-two-ruby-two-six + - rails-five-ruby-two-three + - rails-five-ruby-two-four + - rails-five-ruby-two-five + - rails-five-ruby-two-six + - rails-five-one-ruby-two-three + - rails-five-one-ruby-two-four + - rails-five-one-ruby-two-five + - rails-five-one-ruby-two-six + - rails-five-two-ruby-two-three + - rails-five-two-ruby-two-four + - rails-five-two-ruby-two-five + - rails-five-two-ruby-two-six + - rails-six-ruby-two-five + - rails-six-ruby-two-six diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2e9bb50c..00000000 --- a/.travis.yml +++ /dev/null @@ -1,57 +0,0 @@ -language: ruby -cache: bundler -rvm: - - 2.3 - - 2.4 - - 2.5 - - 2.6 -gemfile: - - gemfiles/faraday.gemfile - - gemfiles/sequel4.gemfile - - gemfiles/sequel5.gemfile - - gemfiles/sinatra.gemfile - - gemfiles/rack.gemfile - - gemfiles/rails_41.gemfile - - gemfiles/rails_42.gemfile - - gemfiles/rails_5.gemfile - - gemfiles/rails_51.gemfile - - gemfiles/rails_52.gemfile - - gemfiles/rails_6.gemfile -script: bundle exec rake test -before_install: - - gem update bundler - - ./bundler_version.sh -matrix: - exclude: - - rvm: 2.4 - gemfile: gemfiles/rails_41.gemfile - - rvm: 2.5 - gemfile: gemfiles/rails_41.gemfile - - rvm: 2.6 - gemfile: gemfiles/rails_41.gemfile - - rvm: 2.3 - gemfile: gemfiles/rails_6.gemfile - - rvm: 2.4 - gemfile: gemfiles/rails_6.gemfile -stages: - - lint - - test - - deploy -jobs: - include: - - stage: lint - script: bundle exec rake rubocop - rvm: 2.6 - gemfile: Gemfile - - stage: deploy - script: skip - rvm: 2.6 - gemfile: Gemfile - deploy: - provider: rubygems - api_key: - secure: V7GDCgz1myfe4c9EoQcGHGzLVtDaJo+/Iis6i+s5gUvKsITVmoMnTEEwuSXROGAdabyjzkTSxMEC2dOK/7Hlc9z4ryb+LxZSMcQfbACv6rOqvGG+PQ++SZULm3qhfTTHwpq41GspVPPindpcaEcVoOGZm6vhuFx9GZQivFNlUvU2TMFT3/+joMsNP0HoI2KfOKy2ACBrjhsE2ooCTON7dlZzCoGwnm9euODrNUBR7/2PnFxBkUaPlRdRMsmvVfxyAgw4eC9LpZgw9Y2dmjhMPXAnOxe3/kQpJ6Z0wN7sp495PYNHGT3DZxQyo84lZcFsgRJa0aLgpXkZGOBa5L7+ZOrNQ0l06kSsrkOCXCjX/lWvaVzncOYXbq5NOPfuQzP3XTXkBJ7816EqNePo1OwBix7SEJOI45/YvEoJfn7J07zdRFzqaq3mjTEu1B92dO8kzvfFUSkbRUkLDpTg6Ra0LjRvPkqeuErcIzzHCLg8RB6Bd88LlLdhhqiN8kRoNUfjlyViyQXy3DYNFfXLV8up+4jJe4wK+p7qtVqpD3yGH7LRKn/911puy1AtzprQ8dUqHEby29f0J6jLrd9oNTI7haWTC+pO5xY2+YfkeOMQq7QKSuWoiMRCGExd4rBGsV/JD3FRq2O2vu/0xXKL+aep7UgEUMHkXOb0EwL/nTm6Bd0= - gem: honeycomb-beeline - on: - tags: true - repo: honeycombio/beeline-ruby diff --git a/README.md b/README.md index a0233c5b..01375589 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Honeycomb Beeline for Ruby -[![Build Status](https://travis-ci.org/honeycombio/beeline-ruby.svg?branch=master)](https://travis-ci.org/honeycombio/beeline-ruby) +[![Build Status](https://circleci.com/gh/honeycombio/libhoney-rb.svg?style=svg)](https://circleci.com/gh/honeycombio/libhoney-rb) [![Gem Version](https://badge.fury.io/rb/honeycomb-beeline.svg)](https://badge.fury.io/rb/honeycomb-beeline) This package makes it easy to instrument your Ruby web app to send useful events to [Honeycomb](https://www.honeycomb.io), a service for debugging your software in production.