2014-08-28 07:59:16 +08:00
language : ruby
2014-12-19 04:09:58 +08:00
sudo : false
2016-04-19 15:15:16 +08:00
cache :
directories :
2018-02-02 07:52:02 +08:00
- vendor/bundle
2016-04-19 15:15:16 +08:00
- /tmp/cache/unicode_conformance
- /tmp/beanstalkd-1.10
2017-02-22 02:41:17 +08:00
- node_modules
- $HOME/.nvm
2016-04-19 15:15:16 +08:00
services :
- memcached
2017-11-13 15:55:06 +08:00
- redis-server
2016-04-19 15:15:16 +08:00
addons :
2018-06-11 20:01:14 +08:00
postgresql : 10
2017-10-20 00:01:52 +08:00
chrome : stable
2017-09-29 04:43:37 +08:00
apt :
sources :
- sourceline : "ppa:mc3man/trusty-media"
- sourceline : "ppa:ubuntuhandbook1/apps"
2018-09-12 04:03:34 +08:00
- mysql-5.7-trusty
2017-12-12 23:31:15 +08:00
packages :
- ffmpeg
- mupdf
- mupdf-tools
2018-02-06 09:33:35 +08:00
- poppler-utils
2018-09-12 04:03:34 +08:00
- mysql-server
- mysql-client
2018-06-11 20:01:14 +08:00
- postgresql-10
- postgresql-client-10
2016-04-19 15:15:16 +08:00
2018-10-11 22:42:53 +08:00
bundler_args : --jobs 3 --retry 3
2012-03-10 05:19:55 +08:00
before_install :
2015-02-19 00:30:25 +08:00
- "rm ${BUNDLE_GEMFILE}.lock"
2017-12-25 18:12:17 +08:00
- "travis_retry gem update --system"
2017-12-22 21:21:57 +08:00
- "travis_retry gem install bundler"
2016-04-19 15:15:16 +08:00
- "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/kr/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)"
- "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd"
2018-03-13 07:00:54 +08:00
- "[[ -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"
2018-06-25 08:44:57 +08:00
- "[[ $GEM != 'av:ujs' ]] || nvm install node"
2017-02-22 02:41:17 +08:00
- "[[ $GEM != 'av:ujs' ]] || node --version"
- "[[ $GEM != 'av:ujs' ]] || (cd actionview && npm install)"
Make Webpacker the default JavaScript compiler for Rails 6 (#33079)
* Use Webpacker by default on new apps
* Stop including coffee-rails by default
* Drop using a js_compressor by default
* Drop extra test for coffeescript inclusion by default
* Stick with skip_javascript to signify skipping webpack
* Don't install a JS runtime by default any more
* app/javascript will be the new default directory for JS
* Make it clear that this is just for configuring the default Webpack framework setup now
* Start using the Webpack tag in the default layout
* Irrelevant test
* jQuery is long gone
* Stop having asset pipeline compile default application.js
* Add rails-ujs by default to the Webpack setup
* Add Active Storage JavaScript to application.js pack by default
* Consistent quoting
* Add Turbolinks to default pack
* Add Action Cable to default pack
Need some work on how to set the global consumer that channels will
work with. @javan?
* Require all channels by default and use a separate consumer stub
* Channel generator now targets Webpack style
* Update task docs to match new generator style
* Use uniform import style
* Drop the JS assets generator
It was barely helpful as it was. It’s no longer helpful in a Webpacked
world. Sayonara!
* Add app/javascript to the stats directories
* Simpler import style
Which match the other imports.
* Address test failures from dropping JS compilation (and compression)
* webpacker-default: Modify `AssetsGeneratorTest`
Before:
```
$ bin/test test/generators/assets_generator_test.rb
Run options: --seed 46201
F
Failure:
AssetsGeneratorTest#test_assets [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/assets_generator_test.rb:12]:
Expected file "app/assets/javascripts/posts.js" to exist, but does not
bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/assets_generator_test.rb:10
.
Finished in 0.031343s, 63.8101 runs/s, 95.7152 assertions/s.
2 runs, 3 assertions, 1 failures, 0 errors, 0 skips
```
After:
```
$ bin/test test/generators/assets_generator_test.rb
Run options: --seed 43571
..
Finished in 0.030370s, 65.8545 runs/s, 65.8545 assertions/s.
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
```
* webpacker-default: Modify `ChannelGeneratorTest`
Before:
```
$ bin/test test/generators/channel_generator_test.rb
Run options: --seed 8986
.F
Failure:
ChannelGeneratorTest#test_channel_with_multiple_actions_is_created [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:43]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not
bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:34
.F
Failure:
ChannelGeneratorTest#test_channel_is_created [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:29]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not
bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:22
E
Error:
ChannelGeneratorTest#test_cable_js_is_created_if_not_present_already:
Errno::ENOENT: No such file or directory @ apply2files - /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/fixtures/tmp/app/assets/javascripts/cable.js
bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:60
F
Failure:
ChannelGeneratorTest#test_channel_suffix_is_not_duplicated [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:87]:
Expected file "app/assets/javascripts/channels/chat.js" to exist, but does not
bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:80
F
Failure:
ChannelGeneratorTest#test_channel_on_revoke [/Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:77]:
Expected file "app/assets/javascripts/cable.js" to exist, but does not
bin/test /Users/ttanimichi/ghq/github.com/ttanimichi/rails/railties/test/generators/channel_generator_test.rb:68
Finished in 0.064384s, 108.7227 runs/s, 481.4861 assertions/s.
7 runs, 31 assertions, 4 failures, 1 errors, 0 skips
```
After:
```
$ bin/test test/generators/channel_generator_test.rb
Run options: --seed 44857
.......
Finished in 0.060243s, 116.1961 runs/s, 697.1764 assertions/s.
7 runs, 42 assertions, 0 failures, 0 errors, 0 skips
```
* Fix shared generator tests.
* webpacker-default: Modify `ControllerGeneratorTest`
The JS assets generator was dropped. ref. https://github.com/rails/rails/commit/46215b179483d3e4d264555f5a4952f43eb8142a
* Revert "Simpler import style". It's currently failing with an error of "TypeError: undefined is not an object (evaluating '__WEBPACK_IMPORTED_MODULE_2_activestorage___default.a.start')". Waiting for @javan to have a look.
This reverts commit 5d3ebb71059f635d3756cbda4ab9752027e09256.
* require webpacker in test app
* Add webpacker without making the build hang/timeout. (#33640)
* use yarn workspaces to allow for installing unreleased packages and only generate js/bootsnap when required
* no longer need to have webpacker in env templates as webpacker moved this config to yml file
* Fix rubocop violation
* Got the test passing for the running scaffold
* update expected lines of code
* update middleware tests to account for webpacker
* disable js in plugins be default to get the tests passing (#34009)
* clear codeclimate report issues
* Anything newer than currently released is good
* Use Webpacker development version during development of Rails
* Edge should get development webpacker as well
* Add changelog entry for Webpacker change
2018-10-01 13:31:21 +08:00
- "[[ $GEM != 'railties' ]] || (curl -o- -L https://yarnpkg.com/install.sh | bash)"
- "[[ $GEM != 'railties' ]] || export PATH=$HOME/.yarn/bin:$PATH"
2017-02-22 02:41:17 +08:00
2014-12-19 04:09:58 +08:00
before_script :
2016-05-10 03:42:28 +08:00
# Set Sauce Labs username and access key. Obfuscated, purposefully not encrypted.
# Decodes to e.g. `export VARIABLE=VALUE`
- $(base64 --decode <<< "ZXhwb3J0IFNBVUNFX0FDQ0VTU19LRVk9YTAzNTM0M2YtZTkyMi00MGIzLWFhM2MtMDZiM2VhNjM1YzQ4")
- $(base64 --decode <<< "ZXhwb3J0IFNBVUNFX1VTRVJOQU1FPXJ1YnlvbnJhaWxz")
2016-04-19 15:15:16 +08:00
script : 'ci/travis.rb'
2011-07-15 15:48:10 +08:00
env :
2018-03-13 11:18:17 +08:00
global :
- "JRUBY_OPTS='--dev -J-Xmx1024M'"
2014-08-21 21:57:27 +08:00
matrix :
2018-03-13 11:18:17 +08:00
- "GEM=ap,ac"
- "GEM=am,amo,as,av,aj,ast"
- "GEM=as PRESERVE_TIMEZONES=1"
- "GEM=ar:sqlite3"
- "GEM=guides"
- "GEM=ac:integration"
2016-04-19 15:15:16 +08:00
2014-10-13 19:42:27 +08:00
rvm :
2018-03-31 19:25:09 +08:00
- 2.4 .4
- 2.5 .1
2018-03-13 11:18:17 +08:00
- ruby-head
matrix :
include :
2018-06-11 20:01:14 +08:00
- rvm : 2.4 .4
env : "GEM=railties"
sudo : required
before_install :
- "rm ${BUNDLE_GEMFILE}.lock"
- "travis_retry gem update --system"
- "travis_retry gem install bundler"
- "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf"
- "sudo service postgresql restart 10"
- rvm : 2.5 .1
env : "GEM=railties"
sudo : required
before_install :
- "rm ${BUNDLE_GEMFILE}.lock"
- "travis_retry gem update --system"
- "travis_retry gem install bundler"
- "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf"
- "sudo service postgresql restart 10"
- rvm : ruby-head
env : "GEM=railties"
sudo : required
before_install :
- "rm ${BUNDLE_GEMFILE}.lock"
- "travis_retry gem update --system"
- "travis_retry gem install bundler"
- "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf"
- "sudo service postgresql restart 10"
2018-03-31 19:25:09 +08:00
- rvm : 2.5 .1
2018-03-13 11:18:17 +08:00
env : "GEM=av:ujs"
2018-03-31 19:25:09 +08:00
- rvm : 2.4 .4
2018-03-13 11:18:17 +08:00
env : "GEM=aj:integration"
services :
- memcached
- redis-server
- rabbitmq
2018-03-31 19:25:09 +08:00
- rvm : 2.5 .1
2018-03-13 11:18:17 +08:00
env : "GEM=aj:integration"
services :
- memcached
- redis-server
- rabbitmq
- rvm : ruby-head
env : "GEM=aj:integration"
services :
- memcached
- redis-server
- rabbitmq
2018-09-13 13:07:26 +08:00
- rvm : 2.4 .4
env : "GEM=ar:mysql2"
sudo : required
before_install :
- "sudo mysql -e \"use mysql; update user set authentication_string='' where User='root'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;\""
- "sudo mysql_upgrade"
- "sudo service mysql restart"
- rvm : 2.5 .1
env : "GEM=ar:mysql2"
sudo : required
before_install :
- "sudo mysql -e \"use mysql; update user set authentication_string='' where User='root'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;\""
- "sudo mysql_upgrade"
- "sudo service mysql restart"
- rvm : ruby-head
env : "GEM=ar:mysql2"
sudo : required
before_install :
- "sudo mysql -e \"use mysql; update user set authentication_string='' where User='root'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;\""
- "sudo mysql_upgrade"
- "sudo service mysql restart"
2018-03-31 19:25:09 +08:00
- rvm : 2.5 .1
2018-03-13 11:18:17 +08:00
env :
- "GEM=ar:mysql2 MYSQL=mariadb"
addons :
CI against MariaDB 10.3
- MariaDB 10.3.7 is the first GA release
https://mariadb.com/kb/en/library/mariadb-1037-release-notes/
- MariaDB 10.3 translates `LENGTH()` to `OCTET_LENGTH()` function
https://mariadb.com/kb/en/library/sql_modeoracle-from-mariadb-103/
> MariaDB translates LENGTH() to OCTET_LENGTH()
- MySQL does NOT translate `LENGTH()` to `OCTET_LENGTH()`
However, it translates `OCTET_LENGTH()` to `LENGTH()`
Here are generated schema dumps of this test to show the differences
between MySQL and MariaDB:
* MySQL 8.0 (Server version: 8.0.11 MySQL Community Server - GPL)
```ruby
create_table \"virtual_columns\", options: \"ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci\", force: :cascade do |t|
t.string \"name\"
t.virtual \"upper_name\", type: :string, as: \"upper(`name`)\"
t.virtual \"name_length\", type: :integer, as: \"length(`name`)\", stored: true
t.virtual \"name_octet_length\", type: :integer, as: \"length(`name`)\", stored: true
end
```
* Maria DB 10.3 (Server version: 10.3.7-MariaDB-1:10.3.7+maria~bionic-log mariadb.org binary distribution)
```ruby
create_table \"virtual_columns\", options: \"ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci\", force: :cascade do |t|
t.string \"name\"
t.virtual \"upper_name\", type: :string, as: \"ucase(`name`)\"
t.virtual \"name_length\", type: :integer, as: \"octet_length(`name`)\", stored: true
t.virtual \"name_octet_length\", type: :integer, as: \"octet_length(`name`)\", stored: true
end
```
2018-05-31 11:35:07 +08:00
mariadb : 10.3
2018-03-31 19:25:09 +08:00
- rvm : 2.5 .1
2018-03-13 11:18:17 +08:00
env :
- "GEM=ar:sqlite3_mem"
2018-06-11 20:01:14 +08:00
- rvm : 2.4 .4
env : "GEM=ar:postgresql"
sudo : required
before_install :
- "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf"
- "sudo service postgresql restart 10"
- rvm : 2.5 .1
env : "GEM=ar:postgresql"
sudo : required
before_install :
- "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf"
- "sudo service postgresql restart 10"
- rvm : ruby-head
env : "GEM=ar:postgresql"
sudo : required
before_install :
- "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf"
- "sudo service postgresql restart 10"
2018-03-31 19:25:09 +08:00
- rvm : 2.5 .1
2018-03-13 11:18:17 +08:00
env :
- "GEM=ar:postgresql POSTGRES=9.2"
addons :
postgresql : "9.2"
- rvm : jruby-head
jdk : oraclejdk8
env :
- "GEM=ap"
- rvm : jruby-head
jdk : oraclejdk8
env :
- "GEM=am,amo,aj"
allow_failures :
- rvm : ruby-head
- rvm : jruby-head
- env : "GEM=ac: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="