From a4e7975d5f22d3d22ab9b9792229e031908e3fe3 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Tue, 31 May 2022 18:37:48 +0200 Subject: [PATCH 1/3] Relax AS and AM dependencies --- hawk.gemspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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' From 31306fc8339bcae1f80e3e05a6eff7463b80a6d7 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Tue, 31 May 2022 18:38:36 +0200 Subject: [PATCH 2/3] Test against latest Ruby versions --- .github/workflows/ruby.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 76316c2..ce7e253 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - ruby-version: ['2.6.9', '2.7.5', '3.0.3', '3.1.0'] + ruby-version: ['2.6.10', '2.7.6', '3.0.4', '3.1.2'] gemfile: [am_5.2, am_6.0, am_6.1, am_7.0] experimental: [false] @@ -101,15 +101,15 @@ jobs: 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 +121,20 @@ jobs: experimental: true exclude: - - ruby-version: '2.6.9' + - ruby-version: '2.6.10' gemfile: am_7.0 - - ruby-version: '2.7.5' + - ruby-version: '2.7.6' gemfile: am_5.2 - - ruby-version: '3.0.3' + - ruby-version: '3.0.4' gemfile: am_5.2 - - ruby-version: '3.1.0' + - ruby-version: '3.1.2' 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: From 4a9f83008612b276d197cfd4fa3a46d56dae714f Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Tue, 31 May 2022 19:21:14 +0200 Subject: [PATCH 3/3] Split legacy Ruby tests Old ruby versions are returning too much segmentation faults --- .github/workflows/legacy_ruby.yml | 86 ++++++++++++++++++++++++++++ .github/workflows/ruby.yml | 93 +------------------------------ README.md | 1 + 3 files changed, 88 insertions(+), 92 deletions(-) create mode 100644 .github/workflows/legacy_ruby.yml 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 ce7e253..1e67550 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -14,93 +14,10 @@ jobs: strategy: matrix: ruby-version: ['2.6.10', '2.7.6', '3.0.4', '3.1.2'] - gemfile: [am_5.2, am_6.0, am_6.1, am_7.0] + 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.6' gemfile: am_edge experimental: true @@ -124,14 +41,6 @@ jobs: - ruby-version: '2.6.10' gemfile: am_7.0 - - ruby-version: '2.7.6' - gemfile: am_5.2 - - - ruby-version: '3.0.4' - gemfile: am_5.2 - - - ruby-version: '3.1.2' - gemfile: am_5.2 - ruby-version: '3.1.2' gemfile: am_6.0 - ruby-version: '3.1.2' 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.