Run core's extra migrations without JRuby
Instead of cloning travis-logs and using JRuby to run migrations try copying core's extra migrations to db/migrate and run migrations straight up.
This commit is contained in:
parent
7f66d4bce9
commit
013deb58f1
|
@ -9,11 +9,7 @@ addons:
|
||||||
postgresql: 9.3
|
postgresql: 9.3
|
||||||
before_script:
|
before_script:
|
||||||
# create 'logs' table matching 'travis-logs'
|
# create 'logs' table matching 'travis-logs'
|
||||||
- ./set_up_travis_logs.sh
|
- 'RAILS_ENV=test bundle exec rake db:create db:structure:load mv_migrations db:migrate --trace'
|
||||||
- 'RAILS_ENV=test bundle exec rake db:create db:structure:load --trace'
|
|
||||||
# replace 'logs' table in travis_test DB with that in travis_logs_test
|
|
||||||
- psql -c "DROP TABLE IF EXISTS logs CASCADE" -U postgres travis_test
|
|
||||||
- pg_dump -t logs travis_logs_test | psql -U postgres travis_test
|
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
irc: "irc.freenode.org#travis"
|
irc: "irc.freenode.org#travis"
|
||||||
|
|
14
Rakefile
14
Rakefile
|
@ -1,5 +1,6 @@
|
||||||
require 'bundler/setup'
|
require 'bundler/setup'
|
||||||
ENV['DB_STRUCTURE'] = "#{Gem.loaded_specs['travis-core'].full_gem_path}/db/structure.sql"
|
CORE_PATH = Gem.loaded_specs['travis-core'].full_gem_path
|
||||||
|
ENV['DB_STRUCTURE'] = "#{CORE_PATH}/db/structure.sql"
|
||||||
|
|
||||||
begin
|
begin
|
||||||
require 'micro_migrations'
|
require 'micro_migrations'
|
||||||
|
@ -16,6 +17,17 @@ rescue LoadError
|
||||||
warn "could not load rspec"
|
warn "could not load rspec"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
desc "move travis-core-specific migrations to db/migrate"
|
||||||
|
task 'mv_migrations' do
|
||||||
|
require 'fileutils'
|
||||||
|
migration_files = Dir["#{CORE_PATH}/spec/migrations/**/*.rb"]
|
||||||
|
migration_files.each do |f|
|
||||||
|
dest = 'db/migrate'
|
||||||
|
FileUtils.mkdir_p dest
|
||||||
|
FileUtils.cp f, dest
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
desc "generate gemspec"
|
desc "generate gemspec"
|
||||||
task 'travis-api.gemspec' do
|
task 'travis-api.gemspec' do
|
||||||
content = File.read 'travis-api.gemspec'
|
content = File.read 'travis-api.gemspec'
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
travis_retry() {
|
|
||||||
local result=0
|
|
||||||
local count=1
|
|
||||||
while [ $count -le 3 ]; do
|
|
||||||
[ $result -ne 0 ] && {
|
|
||||||
echo -e "\n${RED}The command \"$@\" failed. Retrying, $count of 3.${RESET}\n" >&2
|
|
||||||
}
|
|
||||||
"$@"
|
|
||||||
result=$?
|
|
||||||
[ $result -eq 0 ] && break
|
|
||||||
count=$(($count + 1))
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
[ $count -eq 3 ] && {
|
|
||||||
echo "\n${RED}The command \"$@\" failed 3 times.${RESET}\n" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
return $result
|
|
||||||
}
|
|
||||||
|
|
||||||
# clone travis-logs
|
|
||||||
pushd $HOME
|
|
||||||
git clone --depth=1 https://github.com/travis-ci/travis-logs.git
|
|
||||||
cd travis-logs
|
|
||||||
|
|
||||||
# install ruby runtime which travis-logs wants
|
|
||||||
RUBY_RUNTIME=$(cat .ruby-version)
|
|
||||||
rvm install $RUBY_RUNTIME
|
|
||||||
# using JRuby, migrate the 'logs' table in 'travis_test' database
|
|
||||||
BUNDLE_GEMFILE=$PWD/Gemfile
|
|
||||||
travis_retry rvm $RUBY_RUNTIME do bundle install
|
|
||||||
psql -c "CREATE DATABASE travis_logs_test;" -U postgres
|
|
||||||
cp $TRAVIS_BUILD_DIR/config/database.yml config/travis.yml
|
|
||||||
rvm $RUBY_RUNTIME do bundle exec rake db:migrate
|
|
||||||
popd
|
|
Loading…
Reference in New Issue
Block a user