image: "ruby:2.2" services: - mysql:latest - postgres:latest - redis:latest variables: MYSQL_ALLOW_EMPTY_PASSWORD: "1" before_script: - source ./scripts/prepare_build.sh - ruby -v - which ruby - gem install bundler --no-ri --no-rdoc - cp config/gitlab.yml.example config/gitlab.yml - touch log/application.log - touch log/test.log - bundle install --without postgres production --jobs $(nproc) "${FLAGS[@]}" - RAILS_ENV=test bundle exec rake db:drop db:create db:schema:load db:migrate stages: - test - notifications spec:feature: stage: test script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:feature tags: - ruby - mysql spec:api: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api tags: - ruby - mysql spec:models: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models tags: - ruby - mysql spec:lib: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib tags: - ruby - mysql spec:services: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services tags: - ruby - mysql spec:benchmark: stage: test script: - RAILS_ENV=test bundle exec rake spec:benchmark tags: - ruby - mysql allow_failure: true spec:other: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other tags: - ruby - mysql spinach:project:half: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half tags: - ruby - mysql spinach:project:rest: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest tags: - ruby - mysql spinach:other: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other tags: - ruby - mysql teaspoon: stage: test script: - RAILS_ENV=test bundle exec teaspoon tags: - ruby - mysql rubocop: stage: test script: - bundle exec rubocop tags: - ruby - mysql brakeman: stage: test script: - bundle exec rake brakeman tags: - ruby - mysql flog: stage: test script: - bundle exec rake flog tags: - ruby - mysql flay: stage: test script: - bundle exec rake flay tags: - ruby - mysql bundler:audit: stage: test script: - "bundle exec bundle-audit update" - "bundle exec bundle-audit check" tags: - ruby - mysql allow_failure: true ## Ruby 2.1 jobs spec:ruby21: stage: test image: ruby:2.1 script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec tags: - ruby - mysql only: - master spinach:ruby21: stage: test image: ruby:2.1 script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach tags: - ruby - mysql only: - master notify:slack: stage: notifications script: - source ./scripts/notify_slack.sh "#ci-test" "Build failed for master/tags!" when: on_failure only: - master@gitlab-org/gitlab-ce - tags@gitlab-org/gitlab-ce - master@gitlab-org/gitlab-ee - tags@gitlab-org/gitlab-ee