language: ruby

env:
  global:
    - DISCOURSE_HOSTNAME=www.example.com
    - RUBY_GC_MALLOC_LIMIT=50000000
  matrix:
    - "RAILS_MASTER=0"
    - "RAILS_MASTER=1"

addons:
  postgresql: 9.5
  apt:
    packages:
    - gifsicle
    - jpegoptim
    - optipng
    - jhead

matrix:
  allow_failures:
    - env: "RAILS_MASTER=1"
    - rvm: rbx-2
  fast_finish: true

rvm:
  - 2.3.3

services:
  - redis-server

sudo: required
dist: trusty

cache:
  directories:
    - vendor/bundle

before_install:
  - gem install bundler
  - git clone --depth=1 https://github.com/discourse/discourse-backup-uploads-to-s3.git plugins/discourse-backup-uploads-to-s3
  - git clone --depth=1 https://github.com/discourse/discourse-spoiler-alert.git plugins/discourse-spoiler-alert
  - git clone --depth=1 https://github.com/discourse/discourse-cakeday.git plugins/discourse-cakeday
  - git clone --depth=1 https://github.com/discourse/discourse-canned-replies.git plugins/discourse-canned-replies
  - git clone --depth=1 https://github.com/discourse/discourse-slack-official.git plugins/discourse-slack-official
  - npm i -g eslint babel-eslint
  - eslint app/assets/javascripts
  - eslint --ext .es6 app/assets/javascripts
  - eslint --ext .es6 test/javascripts
  - eslint --ext .es6 plugins/**/assets/javascripts
  - eslint test/javascripts

before_script:
  - bundle exec rake db:create db:migrate

install:
  - bash -c "if [ '$RAILS_MASTER' == '1' ]; then bundle update --retry=3 --jobs=3 arel rails seed-fu; fi"
  - bash -c "if [ '$RAILS_MASTER' == '0' ]; then bundle install --without development --deployment --retry=3 --jobs=3; fi"

script: "bundle exec rspec && bundle exec rake plugin:spec && bundle exec rake qunit:test['200000']"