@@ -5,79 +5,64 @@ on: [push, pull_request]
5
5
jobs :
6
6
build :
7
7
name : >-
8
- Mongoid Test with: - Ruby ${{ matrix.entry. ruby }} - MongoDB ${{ matrix.entry. mongodb }} - Gemfile ${{ matrix.entry .gemfile }})
8
+ Mongoid Test with: - Ruby ${{ matrix.ruby }} - MongoDB ${{ matrix.mongodb }} - Gemfile ${{ matrix.gemfile }})
9
9
env :
10
10
CI : true
11
11
TESTOPTS : " -v"
12
- BUNDLE_GEMFILE : gemfiles/${{ matrix.entry. gemfile }}.gemfile
12
+ BUNDLE_GEMFILE : gemfiles/${{ matrix.gemfile }}.gemfile
13
13
runs-on : ubuntu-latest
14
14
continue-on-error : false
15
15
strategy :
16
+ max-parallel : 4
16
17
matrix :
17
- entry :
18
- - { ruby: "2.6", gemfile: 'mongoid_3', mongodb: "3.6" }
19
- - { ruby: "2.6", gemfile: 'mongoid_4', mongodb: "3.6" }
20
- - { ruby: "2.6", gemfile: 'mongoid_4', mongodb: "3.6" }
21
- - { ruby: "2.6", gemfile: 'mongoid_5', mongodb: "3.6" }
22
- - { ruby: "2.6", gemfile: 'mongoid_5', mongodb: "3.6" }
23
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "3.6" }
24
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "3.6" }
25
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "3.6" }
26
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "3.6" }
27
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "3.6" }
28
- - { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "3.6" }
29
- - { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "3.6" }
30
- - { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "3.6" }
31
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "4.0" }
32
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.0" }
33
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.0" }
34
- - { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "4.0" }
35
- - { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "4.0" }
36
- - { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "4.0" }
37
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "4.2" }
38
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.2" }
39
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.2" }
40
- - { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "4.2" }
41
- - { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "4.2" }
42
- - { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "4.2" }
43
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "4.4" }
44
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.4" }
45
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "4.4" }
46
- - { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "4.4" }
47
- - { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "4.4" }
48
- - { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "4.4" }
49
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "5.0" }
50
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "5.0" }
51
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "5.0" }
52
- - { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "5.0" }
53
- - { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "5.0" }
54
- - { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "5.0" }
55
- - { ruby: "3.1", gemfile: 'mongoid_9', mongodb: "5.0" }
56
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "6.0" }
57
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "6.0" }
58
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "6.0" }
59
- - { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "6.0" }
60
- - { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "6.0" }
61
- - { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "6.0" }
62
- - { ruby: "3.1", gemfile: 'mongoid_9', mongodb: "6.0" }
63
- - { ruby: "2.6", gemfile: 'mongoid_6', mongodb: "7.0" }
64
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "7.0" }
65
- - { ruby: "2.6", gemfile: 'mongoid_7', mongodb: "7.0" }
66
- - { ruby: "2.7", gemfile: 'mongoid_7', mongodb: "7.0" }
67
- - { ruby: "3.0", gemfile: 'mongoid_8', mongodb: "7.0" }
68
- - { ruby: "3.1", gemfile: 'mongoid_8', mongodb: "7.0" }
69
- - { ruby: "3.1", gemfile: 'mongoid_9', mongodb: "7.0" }
18
+ ruby : ["2.6", "2.7", "3.0", "3.1"]
19
+ gemfile : ["mongoid_3", "mongoid_4", "mongoid_5", "mongoid_6", "mongoid_7", "mongoid_8", "mongoid_9"]
20
+ mongodb : ["4.0", "5.0", "6.0", "7.0"]
21
+ exclude :
22
+ # Exclusion rules for incompatible versions ordered by ruby version, gemfile, and mongodb version
23
+ - { ruby: "2.6", gemfile: "mongoid_3" }
24
+ - { ruby: "2.6", gemfile: "mongoid_9" }
25
+ - { ruby: "2.6", gemfile: "mongoid_4", mongodb: "6.0" }
26
+ - { ruby: "2.6", gemfile: "mongoid_4", mongodb: "7.0" }
27
+ - { ruby: "2.6", gemfile: "mongoid_8", mongodb: "4.0" }
28
+ - { ruby: "2.6", gemfile: "mongoid_8", mongodb: "5.0" }
29
+ - { ruby: "2.6", gemfile: "mongoid_8", mongodb: "6.0" }
30
+ - { ruby: "2.7", gemfile: "mongoid_3" }
31
+ - { ruby: "2.7", gemfile: "mongoid_4" }
32
+ - { ruby: "2.7", gemfile: "mongoid_5" }
33
+ - { ruby: "3.0", gemfile: "mongoid_3" }
34
+ - { ruby: "3.0", gemfile: "mongoid_4" }
35
+ - { ruby: "3.0", gemfile: "mongoid_5" }
36
+ - { ruby: "3.0", gemfile: "mongoid_6" }
37
+ - { ruby: "3.1", gemfile: "mongoid_3" }
38
+ - { ruby: "3.1", gemfile: "mongoid_4" }
39
+ - { ruby: "3.1", gemfile: "mongoid_5" }
40
+ - { ruby: "3.1", gemfile: "mongoid_6" }
70
41
steps :
71
- - name : Set up MongoDB ${{ matrix.entry.mongodb }}
42
+ - name : Cache Gems
43
+ uses : actions/cache@v3
44
+ with :
45
+ path : vendor/bundle
46
+ key : ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }}
47
+ restore-keys : |
48
+ ${{ runner.os }}-gem-
49
+
50
+ - name : Set up MongoDB ${{ matrix.mongodb }}
72
51
uses : supercharge/mongodb-github-action@1.8.0
73
52
with :
74
- mongodb-version : ${{ matrix.entry.mongodb }}
53
+ mongodb-version : ${{ matrix.mongodb }}
54
+
75
55
- uses : actions/checkout@v3
56
+
76
57
- name : Set up Ruby
77
58
uses : ruby/setup-ruby@v1
78
59
with :
79
- ruby-version : ${{ matrix.entry. ruby }}
60
+ ruby-version : ${{ matrix.ruby }}
80
61
bundler : ' 2'
81
62
bundler-cache : true
63
+
64
+ - name : Install dependencies
65
+ run : bundle install
66
+
82
67
- name : Run tests
83
68
run : bundle exec rake
0 commit comments