diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3af89b7..6e82cda 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,21 +23,28 @@ jobs: run: bundle exec rubocop test: - env: - GRAPE_ENTITY: 1.0.0 - - runs-on: ubuntu-latest + name: test (ruby=${{ matrix.ruby }}, grape=${{ matrix.grape }}, grape-swagger=${{ matrix.grape_swagger}}, grape_entity=${{ matrix.grape_entity }}) strategy: - fail-fast: false matrix: - ruby-version: ['3.1', '3.2', '3.3'] + grape: [ '~> 2.0.0', 'head' ] + grape_swagger: [ '~> 2.0.3', 'head' ] + grape_entity: [ '~> 1.0.1', 'head' ] + ruby: [ '3.1', '3.4', 'head' ] + # Exclude combinations that are not supported. + exclude: + - { grape_swagger: '~> 2.0.3', grape: 'head' } + runs-on: ubuntu-latest + env: + GRAPE_VERSION: ${{ matrix.grape }} + GRAPE_SWAGGER_VERSION: ${{ matrix.grape_swagger }} + GRAPE_ENTITY_VERSION: ${{ matrix.grape_entity }} steps: - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: ${{ matrix.ruby-version }} + ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Run tests run: bundle exec rake spec diff --git a/CHANGELOG.md b/CHANGELOG.md index cb310d6..d445e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ #### Features * Your contribution here. +* [#76](https://github.com/ruby-grape/grape-swagger-entity/pull/76): Update ci matrix and gemfile for multi-version grape testing - [@numbata](https://github.com/numbata). #### Fixes diff --git a/Gemfile b/Gemfile index 96923db..26e7a71 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,25 @@ source 'https://rubygems.org' # Specify your gem's dependencies in grape-swagger-entity.gemspec gemspec +grape_version = ENV.fetch('GRAPE_VERSION', '< 3.0') +grape_swagger_version = ENV.fetch('GRAPE_SWAGGER_VERSION', '< 3.0') +grape_entity_version = ENV.fetch('GRAPE_ENTITY_VERSION', '< 2.0') + +grape_spec = grape_version.casecmp('HEAD').zero? ? { git: 'https://github.com/ruby-grape/grape' } : grape_version +grape_swagger_spec = if grape_swagger_version.casecmp('HEAD').zero? + { git: 'https://github.com/ruby-grape/grape-swagger.git' } + else + grape_swagger_version + end +grape_entity_spec = if grape_entity_version.casecmp('HEAD').zero? + { git: 'https://github.com/ruby-grape/grape-entity.git' } + else + grape_entity_version + end + +gem 'grape', grape_spec +gem 'grape-swagger', grape_swagger_spec + group :development, :test do gem 'bundler' gem 'pry', platforms: [:mri] @@ -20,10 +39,8 @@ group :development, :test do gem 'rubocop-rspec' end -gem 'grape-swagger', git: 'https://github.com/ruby-grape/grape-swagger.git' - group :test do - gem 'grape-entity', ENV.fetch('GRAPE_ENTITY', '1.0.0') + gem 'grape-entity', grape_entity_spec gem 'ruby-grape-danger', '~> 0.2.1', require: false gem 'simplecov', require: false end