image: "ruby:2.1" services: - mysql:latest - redis:latest cache: key: "ruby21" paths: - vendor variables: MYSQL_ALLOW_EMPTY_PASSWORD: "1" # retry tests only in CI environment RSPEC_RETRY_RETRY_COUNT: "3" before_script: - source ./scripts/prepare_build.sh - ruby -v - which ruby - retry gem install bundler --no-ri --no-rdoc - cp config/gitlab.yml.example config/gitlab.yml - touch log/application.log - touch log/test.log - retry 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 spec:api: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api spec:models: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models spec:lib: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib spec:services: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services spec:other: stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other spinach:project:half: stage: test script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half spinach:project:rest: stage: test script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest spinach:other: stage: test script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other teaspoon: stage: test script: - RAILS_ENV=test bundle exec teaspoon rubocop: stage: test script: - bundle exec rubocop scss-lint: stage: test script: - bundle exec rake scss_lint brakeman: stage: test script: - bundle exec rake brakeman flog: stage: test script: - bundle exec rake flog flay: stage: test script: - bundle exec rake flay bundler:audit: stage: test only: - master script: - "bundle exec bundle-audit check --update --ignore OSVDB-115941" db-migrate-reset: stage: test script: - RAILS_ENV=test bundle exec rake db:migrate:reset # Ruby 2.2 jobs spec:feature:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:feature cache: key: "ruby22" paths: - vendor spec:api:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api cache: key: "ruby22" paths: - vendor spec:models:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models cache: key: "ruby22" paths: - vendor spec:lib:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib cache: key: "ruby22" paths: - vendor spec:services:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services cache: key: "ruby22" paths: - vendor spec:other:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other cache: key: "ruby22" paths: - vendor spinach:project:half:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half cache: key: "ruby22" paths: - vendor spinach:project:rest:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest cache: key: "ruby22" paths: - vendor spinach:other:ruby22: stage: test image: ruby:2.2 only: - master script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other cache: key: "ruby22" paths: - vendor notify:slack: stage: notifications script: - ./scripts/notify_slack.sh "#builds" "Build on \`$CI_BUILD_REF_NAME\` failed! Commit \`$(git log -1 --oneline)\` See " when: on_failure only: - master@gitlab-org/gitlab-ce - tags@gitlab-org/gitlab-ce - master@gitlab-org/gitlab-ee - tags@gitlab-org/gitlab-ee