Skip to content

Commit

Permalink
Introduce matrix for unit tests.
Browse files Browse the repository at this point in the history
reduce test matrix

remove mongoid-head gemfile as it is no longer used

reduce matrix entry to multi dimension matrix

test include for mongoid 9

exclude incompatible versions

remove compatible configurations

remove minor version specification to reduce number of combinations

reduce the number of parallel jobs and incorporate caching

remove caching

add caching

create single entry

add matrix with single entry

add ruby 3.0 and mongoid 8

complete string

add exclusion rules

add more exclusion rules

correct gem file name and add more exclusion rules

add more exclusion rules for mongoid_3

add exlcusion rules

add ruby 2.7 and mongoid 4

add more exclusion rules for ruby 3.7

get rid of mongodb 3.6

add ruby 2.7 and mongoid 3 and 4 to exlcusion list

add ruby 2.7 and mongoid 5

exclude ruby 2.6 and mongoid 3 and allow ruby 2.6 and mongoid 7 to run

add matrix for unit tests

modify changelog
  • Loading branch information
sairamsrinivasan committed Jul 6, 2024
1 parent 50bcd09 commit 7036260
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 77 deletions.
101 changes: 43 additions & 58 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,79 +5,64 @@ on: [push, pull_request]
jobs:
build:
name: >-
Mongoid Test with: - Ruby ${{ matrix.entry.ruby }} - MongoDB ${{ matrix.entry.mongodb }} - Gemfile ${{ matrix.entry.gemfile }})
Mongoid Test with: - Ruby ${{ matrix.ruby }} - MongoDB ${{ matrix.mongodb }} - Gemfile ${{ matrix.gemfile }})
env:
CI: true
TESTOPTS: "-v"
BUNDLE_GEMFILE: gemfiles/${{ matrix.entry.gemfile }}.gemfile
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
runs-on: ubuntu-latest
continue-on-error: false
strategy:
max-parallel: 4
matrix:
entry:
- { ruby: "2.6", gemfile: 'mongoid_3', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_4', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_4', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_5', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_5', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "3.6" }
- { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "3.6" }
- { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "3.6" }
- { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "3.6" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "4.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.0" }
- { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "4.0" }
- { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "4.0" }
- { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "4.0" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "4.2" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.2" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.2" }
- { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "4.2" }
- { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "4.2" }
- { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "4.2" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "4.4" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.4" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.4" }
- { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "4.4" }
- { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "4.4" }
- { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "4.4" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "5.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "5.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "5.0" }
- { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "5.0" }
- { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "5.0" }
- { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "5.0" }
- { ruby: "3.1", gemfile: 'mongoid_9', mongodb: "5.0" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "6.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "6.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "6.0" }
- { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "6.0" }
- { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "6.0" }
- { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "6.0" }
- { ruby: "3.1", gemfile: 'mongoid_9', mongodb: "6.0" }
- { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "7.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "7.0" }
- { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "7.0" }
- { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "7.0" }
- { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "7.0" }
- { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "7.0" }
- { ruby: "3.1", gemfile: 'mongoid_9', mongodb: "7.0" }
ruby: ["2.6", "2.7", "3.0", "3.1"]
gemfile: ["mongoid_3", "mongoid_4", "mongoid_5", "mongoid_6", "mongoid_7", "mongoid_8", "mongoid_9"]
mongodb: ["4.0", "5.0", "6.0", "7.0"]
exclude:
# Exclusion rules for incompatible versions ordered by ruby version, gemfile, and mongodb version
- { ruby: "2.6", gemfile: "mongoid_3" }
- { ruby: "2.6", gemfile: "mongoid_9" }
- { ruby: "2.6", gemfile: "mongoid_4", mongodb: "6.0" }
- { ruby: "2.6", gemfile: "mongoid_4", mongodb: "7.0" }
- { ruby: "2.6", gemfile: "mongoid_8", mongodb: "4.0" }
- { ruby: "2.6", gemfile: "mongoid_8", mongodb: "5.0" }
- { ruby: "2.6", gemfile: "mongoid_8", mongodb: "6.0" }
- { ruby: "2.7", gemfile: "mongoid_3" }
- { ruby: "2.7", gemfile: "mongoid_4" }
- { ruby: "2.7", gemfile: "mongoid_5" }
- { ruby: "3.0", gemfile: "mongoid_3" }
- { ruby: "3.0", gemfile: "mongoid_4" }
- { ruby: "3.0", gemfile: "mongoid_5" }
- { ruby: "3.0", gemfile: "mongoid_6" }
- { ruby: "3.1", gemfile: "mongoid_3" }
- { ruby: "3.1", gemfile: "mongoid_4" }
- { ruby: "3.1", gemfile: "mongoid_5" }
- { ruby: "3.1", gemfile: "mongoid_6" }
steps:
- name: Set up MongoDB ${{ matrix.entry.mongodb }}
- name: Cache Gems
uses: actions/cache@v3
with:
path: vendor/bundle
key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gem-
- name: Set up MongoDB ${{ matrix.mongodb }}
uses: supercharge/[email protected]
with:
mongodb-version: ${{ matrix.entry.mongodb }}
mongodb-version: ${{ matrix.mongodb }}

- uses: actions/checkout@v3

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.entry.ruby }}
ruby-version: ${{ matrix.ruby }}
bundler: '2'
bundler-cache: true

- name: Install dependencies
run: bundle install

- name: Run tests
run: bundle exec rake
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
### 1.1.0 (Next)
* [#19](https://github.com/mongoid/mongoid-compatibility/pull/19): Run unit tests using matrix - [@saisrinivasan](https://github.com/SairamSrinivasan).
* Your contribution here.

### 1.0.0 (2024/06/19)
Expand Down
19 changes: 0 additions & 19 deletions gemfiles/mongoid_head.gemfile

This file was deleted.

0 comments on commit 7036260

Please sign in to comment.