diff --git a/.github/workflows/legacy_ruby.yml b/.github/workflows/legacy_ruby.yml new file mode 100644 index 0000000..f3ff376 --- /dev/null +++ b/.github/workflows/legacy_ruby.yml @@ -0,0 +1,86 @@ +name: Legacy Ruby specs + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + test: + name: Legacy Ruby specs + runs-on: ubuntu-18.04 + + strategy: + matrix: + ruby-version: ['2.2.10', '2.3.8', '2.4.10', '2.5.9'] + gemfile: [am_3.2, am_4.0, am_4.1, am_4.2, am_5.0, am_5.1, am_5.2, am_6.0, am_6.1] + 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 + + exclude: + - ruby-version: '2.2.10' + gemfile: am_6.0 + - ruby-version: '2.2.10' + gemfile: am_6.1 + + - ruby-version: '2.3.8' + gemfile: am_4.0 + - ruby-version: '2.3.8' + gemfile: am_4.1 + - ruby-version: '2.3.8' + gemfile: am_6.0 + - ruby-version: '2.3.8' + gemfile: am_6.1 + + - ruby-version: '2.4.10' + gemfile: am_3.2 + - ruby-version: '2.4.10' + gemfile: am_4.0 + - ruby-version: '2.4.10' + gemfile: am_4.1 + - ruby-version: '2.4.10' + gemfile: am_6.0 + - ruby-version: '2.4.10' + gemfile: am_6.1 + + - ruby-version: '2.5.9' + gemfile: am_3.2 + - ruby-version: '2.5.9' + gemfile: am_4.0 + - ruby-version: '2.5.9' + gemfile: am_4.1 + - ruby-version: '2.5.9' + gemfile: am_4.2 + + 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/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 76316c2..1e67550 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -13,103 +13,20 @@ jobs: 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] + ruby-version: ['2.6.10', '2.7.6', '3.0.4', '3.1.2'] + gemfile: [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.3.8' - gemfile: am_3.2 - experimental: false - - ruby-version: '2.3.8' - gemfile: am_4.2 - experimental: false - - ruby-version: '2.3.8' - gemfile: am_5.0 - experimental: false - - ruby-version: '2.3.8' - gemfile: am_5.1 - experimental: false - - ruby-version: '2.3.8' - 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' + - ruby-version: '2.7.6' gemfile: am_edge experimental: true - - ruby-version: '3.0.3' + - ruby-version: '3.0.4' gemfile: am_edge experimental: true - - ruby-version: '3.1.0' + - ruby-version: '3.1.2' gemfile: am_edge experimental: true @@ -121,20 +38,12 @@ jobs: experimental: true exclude: - - ruby-version: '2.6.9' + - ruby-version: '2.6.10' 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' + - ruby-version: '3.1.2' gemfile: am_6.0 - - ruby-version: '3.1.0' + - ruby-version: '3.1.2' gemfile: am_6.1 env: diff --git a/README.md b/README.md index 572ec05..5b5e2fe 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Hawk [![Build Status](https://github.com/ifad/hawk/actions/workflows/ruby.yml/badge.svg)](https://github.com/ifad/hawk/actions) +[![Legacy Build Status](https://github.com/ifad/hawk/actions/workflows/legacy_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/hawk.gemspec b/hawk.gemspec index 5f6b7a7..dd6b15c 100644 --- a/hawk.gemspec +++ b/hawk.gemspec @@ -23,8 +23,8 @@ Gem::Specification.new do |spec| spec.add_dependency 'ethon', '>= 0.7.4' spec.add_dependency 'multi_json' spec.add_dependency 'dalli' - spec.add_dependency 'activesupport', '>= 3.2.0' - spec.add_dependency 'activemodel', '>= 3.2.0' + spec.add_dependency 'activesupport', '>= 3.0.0' + spec.add_dependency 'activemodel', '>= 3.0.0' spec.add_development_dependency 'bundler' spec.add_development_dependency 'rake'