.gitlab-ci.yml 4.61 KB
Newer Older
1
image: "ruby:2.2"
2
3
4
5
6
7

services:
  - mysql:latest
  - postgres:latest
  - redis:latest

8
9
10
11
12
cache:
  key: "ruby22"
  paths:
  - vendor

13
14
15
variables:
  MYSQL_ALLOW_EMPTY_PASSWORD: "1"

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
16
before_script:
Kamil Trzcinski's avatar
Kamil Trzcinski committed
17
  - source ./scripts/prepare_build.sh
Valery Sizov's avatar
Valery Sizov committed
18
19
  - ruby -v
  - which ruby
20
  - gem install bundler --no-ri --no-rdoc
Valery Sizov's avatar
Valery Sizov committed
21
22
23
  - cp config/gitlab.yml.example config/gitlab.yml
  - touch log/application.log
  - touch log/test.log
24
  - bundle install --without postgres production --jobs $(nproc)  "${FLAGS[@]}"
25
  - RAILS_ENV=test bundle exec rake db:drop db:create db:schema:load db:migrate
26
27
28

spec:feature:
  script:
29
    - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null
30
31
32
33
34
35
36
37
38
39
40
41
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:feature
  tags:
    - ruby
    - mysql

spec:api:
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api
  tags:
    - ruby
    - mysql

Douwe Maan's avatar
Douwe Maan committed
42
43
44
45
46
47
48
spec:models:
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models
  tags:
    - ruby
    - mysql

Douwe Maan's avatar
Douwe Maan committed
49
50
51
52
53
54
55
56
57
58
59
60
61
62
spec:lib:
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib
  tags:
    - ruby
    - mysql

spec:services:
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services
  tags:
    - ruby
    - mysql

63
64
65
66
67
68
spec:benchmark:
  script:
    - RAILS_ENV=test bundle exec rake spec:benchmark
  tags:
    - ruby
    - mysql
69
  allow_failure: true
70

71
72
73
74
75
76
77
spec:other:
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other
  tags:
    - ruby
    - mysql

Douwe Maan's avatar
Douwe Maan committed
78
spinach:project:half:
Valery Sizov's avatar
Valery Sizov committed
79
  script:
Douwe Maan's avatar
Douwe Maan committed
80
81
82
83
84
85
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half
  tags:
    - ruby
    - mysql

spinach:project:rest:
Valery Sizov's avatar
Valery Sizov committed
86
  script:
Douwe Maan's avatar
Douwe Maan committed
87
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest
Valery Sizov's avatar
Valery Sizov committed
88
89
90
91
  tags:
    - ruby
    - mysql

92
spinach:other:
Valery Sizov's avatar
Valery Sizov committed
93
  script:
94
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other
Valery Sizov's avatar
Valery Sizov committed
95
96
97
98
  tags:
    - ruby
    - mysql

99
teaspoon:
Valery Sizov's avatar
Valery Sizov committed
100
  script:
101
    - RAILS_ENV=test bundle exec teaspoon
Valery Sizov's avatar
Valery Sizov committed
102
103
104
105
  tags:
    - ruby
    - mysql

106
rubocop:
Valery Sizov's avatar
Valery Sizov committed
107
108
109
110
111
112
  script:
    - bundle exec rubocop
  tags:
    - ruby
    - mysql

113
brakeman:
Valery Sizov's avatar
Valery Sizov committed
114
115
116
117
  script:
    - bundle exec rake brakeman
  tags:
    - ruby
118
    - mysql
119
120
121
122
123
124
125

flog:
  script:
    - bundle exec rake flog
  tags:
    - ruby
    - mysql
126
127
128
129
130
131
132

flay:
  script:
    - bundle exec rake flay
  tags:
    - ruby
    - mysql
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
133

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
134
bundler:audit:
135
  script:
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
136
137
    - "bundle exec bundle-audit update"
    - "bundle exec bundle-audit check"
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
138
139
140
  tags:
    - ruby
    - mysql
141
  allow_failure: true
142
143
144

# Ruby 2.1 jobs

145
spec:feature:ruby21:
146
  image: ruby:2.1
147
148
  only:
  - master
149
150
  script:
    - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null
151
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:feature
152
153
154
155
  cache:
    key: "ruby21"
    paths:
    - vendor
156
157
158
159
160
161
162
163
164
165
  tags:
    - ruby
    - mysql

spec:api:ruby21:
  image: ruby:2.1
  only:
  - master
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api
166
167
168
169
  cache:
    key: "ruby21"
    paths:
    - vendor
170
171
172
173
174
175
176
177
178
179
  tags:
    - ruby
    - mysql

spec:models:ruby21:
  image: ruby:2.1
  only:
  - master
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models
180
181
182
183
  cache:
    key: "ruby21"
    paths:
    - vendor
184
185
186
  tags:
    - ruby
    - mysql
187
188
189

spec:lib:ruby21:
  image: ruby:2.1
190
191
  only:
  - master
192
193
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib
194
195
196
197
  cache:
    key: "ruby21"
    paths:
    - vendor
198
199
200
  tags:
    - ruby
    - mysql
201

202
spec:services:ruby21:
203
  image: ruby:2.1
204
205
  only:
  - master
206
  script:
207
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services
208
209
210
211
  cache:
    key: "ruby21"
    paths:
    - vendor
212
213
214
  tags:
    - ruby
    - mysql
215
216
217

spec:benchmark:ruby21:
  image: ruby:2.1
218
219
  only:
  - master
220
221
  script:
    - RAILS_ENV=test bundle exec rake spec:benchmark
222
223
224
225
  cache:
    key: "ruby21"
    paths:
    - vendor
226
227
228
229
230
231
232
233
234
235
236
  tags:
    - ruby
    - mysql
  allow_failure: true

spec:other:ruby21:
  image: ruby:2.1
  only:
  - master
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other
237
238
239
240
  cache:
    key: "ruby21"
    paths:
    - vendor
241
242
243
244
245
246
247
248
249
250
  tags:
    - ruby
    - mysql

spinach:project:half:ruby21:
  image: ruby:2.1
  only:
  - master
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half
251
252
253
254
  cache:
    key: "ruby21"
    paths:
    - vendor
255
256
257
258
259
260
261
262
263
264
  tags:
    - ruby
    - mysql

spinach:project:rest:ruby21:
  image: ruby:2.1
  only:
  - master
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest
265
266
267
268
  cache:
    key: "ruby21"
    paths:
    - vendor
269
270
271
272
273
274
275
276
277
278
  tags:
    - ruby
    - mysql

spinach:other:ruby21:
  image: ruby:2.1
  only:
  - master
  script:
    - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other
279
280
281
282
  cache:
    key: "ruby21"
    paths:
    - vendor
283
284
285
  tags:
    - ruby
    - mysql
286