rails/.travis.yml
yuuji.yaginuma cd34f00627 Install JavaScript packages before run test
Some tests are running yarn install during the test.
The directory used for isolation test is not subject to yarn workspace,
and it occurs because the required package is not installed.
In order to avoid this, I fixed all necessary packages to be installed
before run test and use symlink to `node_modules`.

This is a bit complicated, as `yarn install` needs to be run in a specific
directory before running the test.
However, running `yarn install` every time run the test is expensive
when testing locally and should be avoided.
2019-02-11 09:58:08 +09:00

164 lines
5.1 KiB
YAML

dist: xenial
language: ruby
sudo: false
cache:
directories:
- vendor/bundle
- /tmp/cache/unicode_conformance
- /tmp/beanstalkd-1.10
- node_modules
- $HOME/.nvm
services:
- memcached
- redis-server
- mysql
addons:
postgresql: 10
chrome: stable
apt:
sources:
- sourceline: "ppa:jonathonf/ffmpeg-3"
- sourceline: "ppa:ubuntuhandbook1/apps"
packages:
- ffmpeg
- mupdf
- mupdf-tools
- poppler-utils
bundler_args: --jobs 3 --retry 3
before_install:
- "rm ${BUNDLE_GEMFILE}.lock"
- "travis_retry gem update --system"
- "travis_retry gem install bundler"
- "[[ -z $encrypted_0fb9444d0374_key && -z $encrypted_0fb9444d0374_iv ]] || openssl aes-256-cbc -K $encrypted_0fb9444d0374_key -iv $encrypted_0fb9444d0374_iv -in activestorage/test/service/configurations.yml.enc -out activestorage/test/service/configurations.yml -d"
- "[[ $GEM != 'actioncable:integration' ]] || yarn install"
- "[[ $GEM != 'actionview:ujs' ]] || nvm install node"
- "[[ $GEM != 'actionview:ujs' ]] || node --version"
- "[[ $GEM != 'actionview:ujs' ]] || (cd actionview && npm install)"
- "[[ $GEM != 'railties' ]] || (curl -o- -L https://yarnpkg.com/install.sh | bash)"
- "[[ $GEM != 'railties' ]] || export PATH=$HOME/.yarn/bin:$PATH"
- "[[ $GEM != 'activerecord:postgresql' ]] || sudo mount -o remount,size=50% /var/ramfs"
before_script:
# Set Sauce Labs username and access key. Obfuscated, purposefully not encrypted.
# Decodes to e.g. `export VARIABLE=VALUE`
- $(base64 --decode <<< "ZXhwb3J0IFNBVUNFX0FDQ0VTU19LRVk9YTAzNTM0M2YtZTkyMi00MGIzLWFhM2MtMDZiM2VhNjM1YzQ4")
- $(base64 --decode <<< "ZXhwb3J0IFNBVUNFX1VTRVJOQU1FPXJ1YnlvbnJhaWxz")
- "[[ $GEM != 'railties' ]] || (cd actionview && yarn build)"
- "[[ $GEM != 'railties' ]] || (cd railties/test/isolation/assets && yarn install)"
script: 'ci/travis.rb'
env:
global:
- "JRUBY_OPTS='--dev -J-Xmx1024M'"
matrix:
- "GEM=railties"
- "GEM=actionpack,actioncable"
- "GEM=actionmailer,activemodel,activesupport,actionview,activejob,activestorage,actionmailbox,actiontext"
- "GEM=activesupport PRESERVE_TIMEZONES=1"
- "GEM=activerecord:sqlite3"
- "GEM=activerecord:postgresql"
- "GEM=activerecord:mysql2"
- "GEM=guides"
- "GEM=actioncable:integration"
rvm:
- 2.5.3
- 2.6.0
- ruby-head
matrix:
include:
- rvm: 2.5.3
env: "GEM=actionview:ujs"
- rvm: 2.5.3
sudo: required
env: "GEM=activejob:integration"
addons:
postgresql: 10
apt:
packages:
- rabbitmq-server
services:
- memcached
- redis-server
- rabbitmq-server
before_install:
- "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/beanstalkd/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)"
- "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd"
- rvm: 2.6.0
sudo: required
env: "GEM=activejob:integration"
addons:
postgresql: 10
apt:
packages:
- rabbitmq-server
services:
- memcached
- redis-server
- rabbitmq-server
before_install:
- "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/beanstalkd/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)"
- "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd"
- rvm: ruby-head
sudo: required
env: "GEM=activejob:integration"
addons:
postgresql: 10
apt:
packages:
- rabbitmq-server
services:
- memcached
- redis-server
- rabbitmq-server
before_install:
- "rm ${BUNDLE_GEMFILE}.lock"
- "travis_retry gem update --system"
- "travis_retry gem install bundler"
- "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/beanstalkd/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)"
- "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd"
- rvm: 2.5.3
env:
- "GEM=activerecord:mysql2 MYSQL=mariadb"
before_install:
- "sudo mysql_upgrade"
- "sudo service mysql restart"
addons:
mariadb: 10.3
- rvm: 2.5.3
env:
- "GEM=activerecord:sqlite3_mem"
- rvm: jruby-head
jdk: oraclejdk11
env:
- "GEM=actionpack"
- rvm: jruby-head
jdk: oraclejdk11
env:
- "GEM=actionmailer,activemodel,activejob"
allow_failures:
- rvm: ruby-head
- rvm: jruby-head
- env: "GEM=actioncable:integration"
fast_finish: true
notifications:
email: false
irc:
on_success: change
on_failure: always
channels:
# "irc.freenode.org#rails-contrib"
- secure: "QFKSOK7xQiWWqTzYfYm0XWoW7idzuxT57MBW9i9EASyRLEPuDwZEubKRP40Y7wPx7ylQd9lp6kJheeLnrDvvTjFbW3sWv9GDRl4WlOU8sG/Kv7MXAASXlDqzyJxxXTtzLeXz2iwY296kOBuKxKxl923eTvEGeocwH02QGo14LpQ="
campfire:
on_success: change
on_failure: always
rooms:
- secure: "YA1alef1ESHWGFNVwvmVGCkMe4cUy4j+UcNvMUESraceiAfVyRMAovlQBGs6\n9kBRm7DHYBUXYC2ABQoJbQRLDr/1B5JPf/M8+Qd7BKu8tcDC03U01SMHFLpO\naOs/HLXcDxtnnpL07tGVsm0zhMc5N8tq4/L3SHxK7Vi+TacwQzI="