@@ -17,36 +17,32 @@ permissions:
17
17
contents : read
18
18
19
19
jobs :
20
- test :
20
+ test-rails-mysql :
21
21
22
+ name : Rails Tests (MySQL)
22
23
runs-on : ubuntu-latest
23
24
strategy :
25
+ fail-fast : false
24
26
matrix :
25
27
ruby-version : ['jruby-9.2.20.1']
26
28
db : ['mysql2']
27
- test_prefix : ["rails:"]
29
+ test_targets : ["rails:test_mysql2 "]
28
30
ar_version : ["6-1-stable"]
29
- prepared_statements : ['false']
30
- # prepared_statements: ['false', 'true']
31
+ prepared_statements : ['false', 'true']
31
32
driver : ['MySQL']
32
- # driver: ['', 'MariaDB']
33
33
34
34
services :
35
35
mysql :
36
36
image : mysql:5.7
37
- env :
38
- MYSQL_USER : root
39
- MYSQL_ROOT_PASSWORD : root
40
- MYSQL_ALLOW_EMPTY_PASSWORD : yes
41
37
ports :
42
38
- 3306
43
39
44
40
env :
45
41
DB : ${{ matrix.db }}
46
- TEST_PREFIX : ${{ matrix.test_prefix }}
47
42
AR_VERSION : ${{ matrix.ar_version }}
48
43
PREPARED_STATEMENTS : ${{ matrix.prepared_statements }}
49
44
DRIVER : ${{ matrix.driver }}
45
+ JRUBY_OPTS : " -J-Xms64M -J-Xmx1024M"
50
46
51
47
steps :
52
48
- uses : actions/checkout@v3
55
51
with :
56
52
ruby-version : ${{ matrix.ruby-version }}
57
53
bundler-cache : true # runs 'bundle install' and caches installed gems automatically
58
- - name : Install dependencies
59
- run : bundle install --retry 3 --without development
60
54
- name : Setup database
61
55
run : |
62
- echo "JAVA_OPTS=$JAVA_OPTS"
63
- export JRUBY_OPTS="-J-Xms64M -J-Xmx1024M"
64
- rake jar # compiles ext generates: lib/arjdbc/jdbc/adapter_java.jar
65
56
sudo service mysql start
66
57
mysql --version || true # to see if we're using MySQL or MariaDB
67
58
mysql -u root -proot -e "CREATE USER rails@localhost;"
@@ -70,6 +61,213 @@ jobs:
70
61
mysql -u root -proot -e "grant all privileges on inexistent_activerecord_unittest.* to rails@localhost;"
71
62
mysql -u root -proot -e "CREATE DATABASE activerecord_unittest DEFAULT CHARACTER SET utf8mb4;"
72
63
mysql -u root -proot -e "CREATE DATABASE activerecord_unittest2 DEFAULT CHARACTER SET utf8mb4;"
64
+ - name : Build
65
+ run : |
66
+ echo "JAVA_OPTS=$JAVA_OPTS"
67
+ rake jar # compiles ext generates: lib/arjdbc/jdbc/adapter_java.jar
68
+ - name : Run tests
69
+ run : |
70
+ bundle exec rake ${{ matrix.test_targets }}
71
+
72
+ test-rails-pgsql :
73
+
74
+ name : Rails Tests (Postgres)
75
+ runs-on : ubuntu-latest
76
+ strategy :
77
+ fail-fast : false
78
+ matrix :
79
+ ruby-version : [ 'jruby-9.2.20.1' ]
80
+ db : [ 'postgresql' ]
81
+ test_targets : [ "rails:test_postgresql" ]
82
+ ar_version : ["6-1-stable"]
83
+ prepared_statements : [ 'false', 'true' ]
84
+
85
+ services :
86
+ postgres :
87
+ image : postgres:10
88
+ env :
89
+ POSTGRES_PASSWORD : postgres
90
+ POSTGRES_HOST_AUTH_METHOD : trust
91
+ ports :
92
+ - 5432:5432
93
+ options : --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
94
+
95
+ env :
96
+ DB : ${{ matrix.db }}
97
+ AR_VERSION : ${{ matrix.ar_version }}
98
+ JRUBY_OPTS : " -J-Xms64M -J-Xmx1024M"
99
+ PREPARED_STATEMENTS : ${{ matrix.prepared_statements }}
100
+ PGHOST : localhost
101
+ PGPORT : 5432
102
+ PGUSER : postgres
103
+
104
+ steps :
105
+ - uses : actions/checkout@v3
106
+ - name : Set up Ruby
107
+ uses : ruby/setup-ruby@v1
108
+ with :
109
+ ruby-version : ${{ matrix.ruby-version }}
110
+ bundler-cache : true # runs 'bundle install' and caches installed gems automatically
111
+ - name : Setup database
112
+ run : |
113
+ psql -c "create database activerecord_unittest;" -U postgres
114
+ psql -c "create database activerecord_unittest2;" -U postgres
115
+ - name : Build
116
+ run : |
117
+ rake jar # compiles ext generates: lib/arjdbc/jdbc/adapter_java.jar
118
+ - name : Run tests
119
+ run : |
120
+ bundle exec rake ${{ matrix.test_targets }}
121
+
122
+ test-rails-sqlite :
123
+
124
+ name : Rails Tests (SQLite)
125
+ runs-on : ubuntu-latest
126
+ strategy :
127
+ fail-fast : false
128
+ matrix :
129
+ ruby-version : ['jruby-9.2.20.1']
130
+ db : ['sqlite3']
131
+ test_targets : ["rails:test_sqlite3"]
132
+ ar_version : ["6-1-stable"]
133
+
134
+ env :
135
+ DB : ${{ matrix.db }}
136
+ AR_VERSION : ${{ matrix.ar_version }}
137
+ JRUBY_OPTS : " -J-Xms64M -J-Xmx1024M"
138
+
139
+ steps :
140
+ - uses : actions/checkout@v3
141
+ - name : Set up Ruby
142
+ uses : ruby/setup-ruby@v1
143
+ with :
144
+ ruby-version : ${{ matrix.ruby-version }}
145
+ bundler-cache : true # runs 'bundle install' and caches installed gems automatically
146
+ - name : Build
147
+ run : |
148
+ echo "JAVA_OPTS=$JAVA_OPTS"
149
+ rake jar # compiles ext generates: lib/arjdbc/jdbc/adapter_java.jar
150
+ - name : Run tests
151
+ run : |
152
+ bundle exec rake ${{ matrix.test_targets }}
153
+
154
+ test-arjdbc-mysql :
155
+
156
+ name : ARJDBC Tests (MySQL)
157
+ runs-on : ubuntu-latest
158
+ strategy :
159
+ fail-fast : false
160
+ matrix :
161
+ ruby-version : ['jruby-9.2.20.1']
162
+ db : ['mysql2']
163
+ test_targets : ["db:mysql test_mysql2"]
164
+ prepared_statements : ['false', 'true']
165
+ driver : ['MySQL']
166
+
167
+ services :
168
+ mysql :
169
+ image : mysql:5.7
170
+ ports :
171
+ - 3306
172
+
173
+ env :
174
+ DB : ${{ matrix.db }}
175
+ DRIVER : ${{ matrix.driver }}
176
+ JRUBY_OPTS : " -J-Xms64M -J-Xmx1024M"
177
+ MY_USER : root
178
+ MY_PASSWORD : root
179
+ PREPARED_STATEMENTS : ${{ matrix.prepared_statements }}
180
+
181
+ steps :
182
+ - uses : actions/checkout@v3
183
+ - name : Set up Ruby
184
+ uses : ruby/setup-ruby@v1
185
+ with :
186
+ ruby-version : ${{ matrix.ruby-version }}
187
+ bundler-cache : true # runs 'bundle install' and caches installed gems automatically
188
+ - name : Setup database
189
+ run : |
190
+ sudo service mysql start
191
+ mysql --version || true # to see if we're using MySQL or MariaDB
192
+ - name : Build
193
+ run : |
194
+ rake jar
195
+ - name : Run tests
196
+ run : |
197
+ bundle exec rake ${{ matrix.test_targets }}
198
+
199
+ test-arjdbc-pgsql :
200
+
201
+ name : ARJDBC Tests (Postgres)
202
+ runs-on : ubuntu-latest
203
+ strategy :
204
+ fail-fast : false
205
+ matrix :
206
+ ruby-version : ['jruby-9.2.20.1']
207
+ db : ['postgresql']
208
+ test_targets : ["db:postgresql test_postgresql"]
209
+ prepared_statements : ['false', 'true']
210
+ insert_returning : ['false', 'true']
211
+
212
+ services :
213
+ postgres :
214
+ image : postgres:10
215
+ env :
216
+ POSTGRES_PASSWORD : postgres
217
+ POSTGRES_HOST_AUTH_METHOD : trust
218
+ ports :
219
+ - 5432:5432
220
+ options : --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
221
+
222
+ env :
223
+ DB : ${{ matrix.db }}
224
+ DRIVER : ${{ matrix.driver }}
225
+ JRUBY_OPTS : " -J-Xms64M -J-Xmx1024M"
226
+ PREPARED_STATEMENTS : ${{ matrix.prepared_statements }}
227
+ INSERT_RETURNING : ${{ matrix.insert_returning }}
228
+ PGHOST : localhost
229
+ PGPORT : 5432
230
+ PGUSER : postgres
231
+
232
+ steps :
233
+ - uses : actions/checkout@v3
234
+ - name : Set up Ruby
235
+ uses : ruby/setup-ruby@v1
236
+ with :
237
+ ruby-version : ${{ matrix.ruby-version }}
238
+ bundler-cache : true # runs 'bundle install' and caches installed gems automatically
239
+ - name : Build
240
+ run : |
241
+ rake jar
242
+ - name : Run tests
243
+ run : |
244
+ bundle exec rake ${{ matrix.test_targets }}
245
+
246
+ test-arjdbc-sqlite :
247
+
248
+ name : ARJDBC Tests (SQLite)
249
+ runs-on : ubuntu-latest
250
+ strategy :
251
+ fail-fast : false
252
+ matrix :
253
+ ruby-version : ['jruby-9.2.20.1']
254
+ db : ['sqlite3']
255
+ test_targets : ['test_sqlite3']
256
+
257
+ env :
258
+ DB : ${{ matrix.db }}
259
+ JRUBY_OPTS : " -J-Xms64M -J-Xmx1024M"
260
+
261
+ steps :
262
+ - uses : actions/checkout@v3
263
+ - name : Set up Ruby
264
+ uses : ruby/setup-ruby@v1
265
+ with :
266
+ ruby-version : ${{ matrix.ruby-version }}
267
+ bundler-cache : true # runs 'bundle install' and caches installed gems automatically
268
+ - name : Build
269
+ run : |
270
+ rake jar
73
271
- name : Run tests
74
272
run : |
75
- bundle exec rake ${{ env.TEST_PREFIX }}test_${{ env.DB }}
273
+ bundle exec rake ${{ matrix.test_targets }}
0 commit comments