Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • James Lopez's avatar
    James Lopez committed
    image: "ruby:2.1"
    
    
    services:
      - mysql:latest
      - postgres:latest
      - redis:latest
    
    
      key: "ruby21"
    
    variables:
      MYSQL_ALLOW_EMPTY_PASSWORD: "1"
    
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    before_script:
    
      - source ./scripts/prepare_build.sh
    
    Valery Sizov's avatar
    Valery Sizov committed
      - ruby -v
      - which ruby
    
      - gem install bundler --no-ri --no-rdoc
    
    Valery Sizov's avatar
    Valery Sizov committed
      - 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
    
    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
    
    
      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.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
      tags:
        - ruby
        - mysql
    
    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
      tags:
        - ruby
        - mysql
    
    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
      tags:
        - ruby
        - mysql
    
    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
      tags:
        - ruby
        - mysql
    
    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
      tags:
        - ruby
        - mysql
    
    spec:benchmark:ruby22:
      stage: test
      image: ruby:2.2
      only:
      - master
      script:
        - RAILS_ENV=test bundle exec rake spec:benchmark
      cache:
        key: "ruby22"
        paths:
        - vendor
      tags:
        - ruby
        - mysql
      allow_failure: true
    
    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
      tags:
        - ruby
        - mysql
    
    spinach:project:half:ruby22:
      stage: test
      image: ruby:2.2
      only:
      - master
      script:
        - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half
      cache:
        key: "ruby22"
        paths:
        - vendor
      tags:
        - ruby
        - mysql
    
    spinach:project:rest:ruby22:
      stage: test
      image: ruby:2.2
      only:
      - master
      script:
        - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest
      cache:
        key: "ruby22"
        paths:
        - vendor
      tags:
        - ruby
        - mysql
    
    spinach:other:ruby22:
      stage: test
      image: ruby:2.2
      only:
      - master
      script:
        - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other
      cache:
        key: "ruby22"
        paths:
        - vendor
      tags:
        - ruby
        - mysql
    
    
        - ./scripts/notify_slack.sh "#builds" "Build on \`$CI_BUILD_REF_NAME\` failed! Commit: \`$(git log -1 --oneline)\` See <https://gitlab.com/gitlab-org/$(basename "$PWD")/commit/"$CI_BUILD_REF"/builds>"
    
      when: on_failure
      only:
        - master@gitlab-org/gitlab-ce
        - tags@gitlab-org/gitlab-ce
        - master@gitlab-org/gitlab-ee
        - tags@gitlab-org/gitlab-ee