diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml new file mode 100644 index 0000000..69d0cd6 --- /dev/null +++ b/.github/workflows/ruby.yml @@ -0,0 +1,138 @@ +name: Ruby specs + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + test: + name: Ruby specs + runs-on: ubuntu-latest + + strategy: + matrix: + ruby-version: ['2.6.9', '2.7.5', '3.0.3', '3.1.0'] + gemfile: [am_5.2, am_6.0, am_6.1, am_7.0] + experimental: [false] + + include: + # Ruby 2.1.10 is not available on GitHub Actions' ubuntu-20.04 + # Ruby 2.1.9 returns segmentation faults, so this is marked as + # experimental + - ruby-version: '2.1.9' + gemfile: am_3.2 + experimental: true + - ruby-version: '2.1.9' + gemfile: am_4.0 + experimental: true + - ruby-version: '2.1.9' + gemfile: am_4.1 + experimental: true + - ruby-version: '2.1.9' + gemfile: am_4.2 + experimental: true + + - ruby-version: '2.2.10' + gemfile: am_3.2 + experimental: false + - ruby-version: '2.2.10' + gemfile: am_4.0 + experimental: false + - ruby-version: '2.2.10' + gemfile: am_4.1 + experimental: false + - ruby-version: '2.2.10' + gemfile: am_4.2 + experimental: false + - ruby-version: '2.2.10' + gemfile: am_5.0 + experimental: false + - ruby-version: '2.2.10' + gemfile: am_5.1 + experimental: false + - ruby-version: '2.2.10' + gemfile: am_5.2 + experimental: false + + - ruby-version: '2.4.10' + gemfile: am_4.2 + experimental: false + - ruby-version: '2.4.10' + gemfile: am_5.0 + experimental: false + - ruby-version: '2.4.10' + gemfile: am_5.1 + experimental: false + - ruby-version: '2.4.10' + gemfile: am_5.2 + experimental: false + + - ruby-version: '2.5.9' + gemfile: am_5.0 + experimental: false + - ruby-version: '2.5.9' + gemfile: am_5.1 + experimental: false + - ruby-version: '2.5.9' + gemfile: am_5.2 + experimental: false + - ruby-version: '2.5.9' + gemfile: am_6.0 + experimental: false + - ruby-version: '2.5.9' + gemfile: am_6.1 + experimental: false + + - ruby-version: '2.7.5' + gemfile: am_edge + experimental: true + + - ruby-version: '3.0.3' + gemfile: am_edge + experimental: true + + - ruby-version: '3.1.0' + gemfile: am_edge + experimental: true + + - ruby-version: 'head' + gemfile: am_7.0 + experimental: true + - ruby-version: 'head' + gemfile: am_edge + experimental: true + + exclude: + - ruby-version: '2.6.9' + gemfile: am_7.0 + + - ruby-version: '2.7.5' + gemfile: am_5.2 + + - ruby-version: '3.0.3' + gemfile: am_5.2 + + - ruby-version: '3.1.0' + gemfile: am_5.2 + - ruby-version: '3.1.0' + gemfile: am_6.0 + - ruby-version: '3.1.0' + gemfile: am_6.1 + + env: + BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile + TEST_CONFIG: ./spec/config.github.yml + + continue-on-error: ${{ matrix.experimental }} + + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true + - name: Run specs + run: bundle exec rake spec diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f4f0fe7..0000000 --- a/.travis.yml +++ /dev/null @@ -1,142 +0,0 @@ -language: ruby -os: linux -dist: xenial - -cache: bundler - -rvm: - - 2.1.10 - - 2.2.10 - - 2.3.8 - - 2.4.10 - - 2.5.8 - - 2.6.6 - - 2.7.2 - - 3.0.0 - - ruby-head - -gemfile: - - gemfiles/am_3.2.gemfile - - gemfiles/am_4.0.gemfile - - gemfiles/am_4.1.gemfile - - gemfiles/am_4.2.gemfile - - gemfiles/am_5.0.gemfile - - gemfiles/am_5.1.gemfile - - gemfiles/am_5.2.gemfile - - gemfiles/am_6.0.gemfile - - gemfiles/am_6.1.gemfile - - gemfiles/am_edge.gemfile - -jobs: - allow_failures: - - rvm: ruby-head - - gemfile: gemfiles/am_edge.gemfile - exclude: - - rvm: 2.1.10 - gemfile: gemfiles/am_5.0.gemfile - - rvm: 2.1.10 - gemfile: gemfiles/am_5.1.gemfile - - rvm: 2.1.10 - gemfile: gemfiles/am_5.2.gemfile - - rvm: 2.1.10 - gemfile: gemfiles/am_6.0.gemfile - - rvm: 2.1.10 - gemfile: gemfiles/am_6.1.gemfile - - rvm: 2.1.10 - gemfile: gemfiles/am_edge.gemfile - - - rvm: 2.2.10 - gemfile: gemfiles/am_6.0.gemfile - - rvm: 2.2.10 - gemfile: gemfiles/am_6.1.gemfile - - rvm: 2.2.10 - gemfile: gemfiles/am_edge.gemfile - - - rvm: 2.3.8 - gemfile: gemfiles/am_4.0.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/am_4.1.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/am_6.0.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/am_6.1.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/am_edge.gemfile - - - rvm: 2.4.10 - gemfile: gemfiles/am_3.2.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/am_4.0.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/am_4.1.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/am_6.0.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/am_6.1.gemfile - - rvm: 2.4.10 - gemfile: gemfiles/am_edge.gemfile - - - rvm: 2.5.8 - gemfile: gemfiles/am_3.2.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/am_4.0.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/am_4.1.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/am_4.2.gemfile - - - rvm: 2.6.6 - gemfile: gemfiles/am_3.2.gemfile - - rvm: 2.6.6 - gemfile: gemfiles/am_4.0.gemfile - - rvm: 2.6.6 - gemfile: gemfiles/am_4.1.gemfile - - rvm: 2.6.6 - gemfile: gemfiles/am_4.2.gemfile - - - rvm: 2.7.2 - gemfile: gemfiles/am_3.2.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/am_4.0.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/am_4.1.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/am_4.2.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/am_5.0.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/am_5.1.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/am_5.2.gemfile - - - rvm: 3.0.0 - gemfile: gemfiles/am_3.2.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/am_4.0.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/am_4.1.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/am_4.2.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/am_5.0.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/am_5.1.gemfile - - rvm: 3.0.0 - gemfile: gemfiles/am_5.2.gemfile - - - rvm: ruby-head - gemfile: gemfiles/am_3.2.gemfile - - rvm: ruby-head - gemfile: gemfiles/am_4.0.gemfile - - rvm: ruby-head - gemfile: gemfiles/am_4.1.gemfile - - rvm: ruby-head - gemfile: gemfiles/am_4.2.gemfile - - rvm: ruby-head - gemfile: gemfiles/am_5.0.gemfile - - rvm: ruby-head - gemfile: gemfiles/am_5.1.gemfile - - rvm: ruby-head - gemfile: gemfiles/am_5.2.gemfile - -script: bundle exec rake diff --git a/Appraisals b/Appraisals index 0ffe02a..0fdadba 100644 --- a/Appraisals +++ b/Appraisals @@ -3,36 +3,43 @@ appraise 'am-3.2' do gem 'activemodel', "~> 3.2.0" gem 'activesupport', "~> 3.2.0" + gem 'dalli', '< 3' end appraise 'am-4.0' do gem 'activemodel', "~> 4.0.0" gem 'activesupport', "~> 4.0.0" + gem 'dalli', '< 3' end appraise 'am-4.1' do gem 'activemodel', "~> 4.1.0" gem 'activesupport', "~> 4.1.0" + gem 'dalli', '< 3' end appraise 'am-4.2' do gem 'activemodel', "~> 4.2.0" gem 'activesupport', "~> 4.2.0" + gem 'dalli', '< 3' end appraise 'am-5.0' do gem 'activemodel', "~> 5.0.0" gem 'activesupport', "~> 5.0.0" + gem 'dalli', '< 3' end appraise 'am-5.1' do gem 'activemodel', "~> 5.1.0" gem 'activesupport', "~> 5.1.0" + gem 'dalli', '< 3' end appraise 'am-5.2' do gem 'activemodel', "~> 5.2.0" gem 'activesupport', "~> 5.2.0" + gem 'dalli', '< 3' end appraise 'am-6.0' do @@ -45,6 +52,11 @@ appraise 'am-6.1' do gem 'activesupport', "~> 6.1.0" end +appraise 'am-7.0' do + gem 'activemodel', "~> 7.0.0" + gem 'activesupport', "~> 7.0.0" +end + appraise 'am-edge' do gem 'activemodel', git: "https://github.com/rails/rails.git" gem 'activesupport', git: "https://github.com/rails/rails.git" diff --git a/README.md b/README.md index ef8d8cd..572ec05 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Hawk -[![Build Status](https://travis-ci.org/ifad/hawk.svg)](https://travis-ci.org/ifad/hawk) +[![Build Status](https://github.com/ifad/hawk/actions/workflows/ruby.yml/badge.svg)](https://github.com/ifad/hawk/actions) Hawk is an API Client framework. It is used as a base to then build your API clients. It consumes JSON and produces Ruby objects without any Hash magic. diff --git a/gemfiles/am_3.2.gemfile b/gemfiles/am_3.2.gemfile index 5ae8881..bb4b628 100644 --- a/gemfiles/am_3.2.gemfile +++ b/gemfiles/am_3.2.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "activemodel", "~> 3.2.0" gem "activesupport", "~> 3.2.0" +gem "dalli", "< 3" gemspec path: "../" diff --git a/gemfiles/am_4.0.gemfile b/gemfiles/am_4.0.gemfile index fb49f5f..51fe262 100644 --- a/gemfiles/am_4.0.gemfile +++ b/gemfiles/am_4.0.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "activemodel", "~> 4.0.0" gem "activesupport", "~> 4.0.0" +gem "dalli", "< 3" gemspec path: "../" diff --git a/gemfiles/am_4.1.gemfile b/gemfiles/am_4.1.gemfile index b2d461b..f5d3568 100644 --- a/gemfiles/am_4.1.gemfile +++ b/gemfiles/am_4.1.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "activemodel", "~> 4.1.0" gem "activesupport", "~> 4.1.0" +gem "dalli", "< 3" gemspec path: "../" diff --git a/gemfiles/am_4.2.gemfile b/gemfiles/am_4.2.gemfile index e5f7986..97a780f 100644 --- a/gemfiles/am_4.2.gemfile +++ b/gemfiles/am_4.2.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "activemodel", "~> 4.2.0" gem "activesupport", "~> 4.2.0" +gem "dalli", "< 3" gemspec path: "../" diff --git a/gemfiles/am_5.0.gemfile b/gemfiles/am_5.0.gemfile index 97037e7..813e6ab 100644 --- a/gemfiles/am_5.0.gemfile +++ b/gemfiles/am_5.0.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "activemodel", "~> 5.0.0" gem "activesupport", "~> 5.0.0" +gem "dalli", "< 3" gemspec path: "../" diff --git a/gemfiles/am_5.1.gemfile b/gemfiles/am_5.1.gemfile index f3d7263..128f23f 100644 --- a/gemfiles/am_5.1.gemfile +++ b/gemfiles/am_5.1.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "activemodel", "~> 5.1.0" gem "activesupport", "~> 5.1.0" +gem "dalli", "< 3" gemspec path: "../" diff --git a/gemfiles/am_5.2.gemfile b/gemfiles/am_5.2.gemfile index b73a40b..8e3b959 100644 --- a/gemfiles/am_5.2.gemfile +++ b/gemfiles/am_5.2.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "activemodel", "~> 5.2.0" gem "activesupport", "~> 5.2.0" +gem "dalli", "< 3" gemspec path: "../" diff --git a/gemfiles/am_7.0.gemfile b/gemfiles/am_7.0.gemfile new file mode 100644 index 0000000..a334cb1 --- /dev/null +++ b/gemfiles/am_7.0.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "activemodel", "~> 7.0.0" +gem "activesupport", "~> 7.0.0" + +gemspec path: "../" diff --git a/lib/hawk/rake/default_task.rb b/lib/hawk/rake/default_task.rb index 9fc88de..98e65fc 100644 --- a/lib/hawk/rake/default_task.rb +++ b/lib/hawk/rake/default_task.rb @@ -14,7 +14,7 @@ class DefaultTask ## # Main +Eaco+ rake task. # - # If running appraisals or running within Travis CI, run all specs. + # If running appraisals or running within CI, run all specs. # def initialize if running_appraisals? @@ -22,7 +22,7 @@ def initialize run_specs end - elsif running_in_travis? + elsif running_in_ci? task :default do run_specs end @@ -169,10 +169,10 @@ def running_appraisals? end ## - # @return [Boolean] Are we running on Travis CI? + # @return [Boolean] Are we running on CI? # - def running_in_travis? - ENV["TRAVIS"] + def running_in_ci? + ENV["CI"] end end