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" RAILS_ENV: "test" SIMPLECOV: "true" USE_DB: "true" before_script: - source ./scripts/prepare_build.sh - cp config/gitlab.yml.example config/gitlab.yml #- retry gem install bundler - retry bundle install --without postgres production --jobs $(nproc) "${FLAGS[@]}" - '[ "$USE_DB" != "true" ] || bundle exec rake db:drop db:create db:schema:load db:migrate' stages: - build - test - notifications test-bundler: stage: build variables: USE_DB: "false" script: - retry gem install bundler - bundle exec bundle --version prepare: stage: build variables: USE_DB: "false" script: - bundle exec rake assets:precompile - echo "{}" > knapsack_rspec_report.json - echo "{}" > knapsack_cucumber_report.json artifacts: paths: - public/assets/ - knapsack_rspec_report.json - knapsack_cucumber_report.json .knapsack: &knapsack stage: test script: - JOB_NAME=( $CI_BUILD_NAME ) - export CI_NODE_INDEX=${JOB_NAME[1]} - export CI_NODE_TOTAL=${JOB_NAME[2]} - bundle exec rake knapsack:${JOB_NAME[0]} .exec: &exec stage: test script: - bundle exec $CI_BUILD_NAME rspec 0 10: *knapsack rspec 1 10: *knapsack rspec 2 10: *knapsack rspec 3 10: *knapsack rspec 4 10: *knapsack rspec 5 10: *knapsack rspec 6 10: *knapsack rspec 7 10: *knapsack rspec 8 10: *knapsack rspec 9 10: *knapsack spinach 0 10: *knapsack spinach 1 10: *knapsack spinach 2 10: *knapsack spinach 3 10: *knapsack spinach 4 10: *knapsack spinach 5 10: *knapsack spinach 6 10: *knapsack spinach 7 10: *knapsack spinach 8 10: *knapsack spinach 9 10: *knapsack teaspoon: *exec rubocop: *exec rake scss_lint: *exec rake brakeman: *exec rake flog: *exec rake flay: *exec rake db:migrate:reset: *exec bundler:audit: stage: test only: - master script: - "bundle exec bundle-audit check --update --ignore OSVDB-115941" # Ruby 2.2 jobs spec:feature:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake assets:precompile 2>/dev/null - bundle exec rake spec:feature cache: key: "ruby22" paths: - vendor spec:api:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake spec:api cache: key: "ruby22" paths: - vendor spec:models:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake spec:models cache: key: "ruby22" paths: - vendor spec:lib:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake spec:lib cache: key: "ruby22" paths: - vendor spec:services:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake spec:services cache: key: "ruby22" paths: - vendor spec:other:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake spec:other cache: key: "ruby22" paths: - vendor spinach:project:half:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake assets:precompile 2>/dev/null - bundle exec rake spinach:project:half cache: key: "ruby22" paths: - vendor spinach:project:rest:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake assets:precompile 2>/dev/null - bundle exec rake spinach:project:rest cache: key: "ruby22" paths: - vendor spinach:other:ruby22: stage: test image: ruby:2.2 only: - master script: - bundle exec rake assets:precompile 2>/dev/null - 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