.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:
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
133

134
bundler:audit:
135
  script:
136 137
    - "bundle exec bundle-audit update"
    - "bundle exec bundle-audit check"
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