Merge pull request #664 from pozorvlak/travis_containers

Deployment from Travis containers
This commit is contained in:
pozorvlak
2015-01-23 11:00:11 +00:00
4 changed files with 64 additions and 8 deletions

View File

@@ -1,12 +1,34 @@
---
sudo: false
language: ruby
env: GROWSTUFF_SITE_NAME="Growstuff (travis)" RAILS_SECRET_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
bundler_args: --without development production staging
cache: bundler
env:
matrix:
- GROWSTUFF_SITE_NAME="Growstuff (travis)" RAILS_SECRET_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
global:
secure: "Z5TpM2jEX4UCvNePnk/LwltQX48U2u9BRc+Iypr1x9QW2o228QJhPIOH39a8RMUrepGnkQIq9q3ZRUn98RfrJz1yThtlNFL3NmzdQ57gKgjGwfpa0e4Dwj/ZJqV2D84tDGjvdVYLP7zzaYZxQcwk/cgNpzKf/jq97HLNP7CYuf4="
bundler_args: "--without development production staging"
rvm:
- 2.1.5
- 2.1.5
before_script:
- psql -c 'create database growstuff_test;' -U postgres
- psql -c 'create database growstuff_test;' -U postgres
script:
- bundle exec rake db:migrate --trace
- bundle exec rspec spec/
- bundle exec rake db:migrate --trace
- bundle exec rspec spec/
before_deploy:
- bundle exec script/heroku_maintenance.rb on
deploy:
provider: heroku
api_key:
secure: WrQxf0fEKkCdXrjcejurobOnNNz3he4dDwjBbToXbQTQNDObPp7NetJrLsfM8FiUFEeOuvhIHHiDQtMvY720zGGAGxDptvgFS+0QHCUqoTRZA/yFfUmHlG2jROXTzk5uVK0AE4k6Ion5kX8+mM0EnMT/7u+MTFiukrJctSiEXfg=
on:
repo: Growstuff/growstuff
app:
dev: growstuff-staging
travis_deploy: tranquil-basin-3130
travis_containers: tranquil-basin-3130
run:
- "rake db:migrate"
- "script/deploy-tasks.sh"
- restart
after_deploy:
- bundle exec script/heroku_maintenance.rb off

View File

@@ -110,3 +110,7 @@ group :development, :test do
gem 'poltergeist', '~> 1.5.1' # for headless JS testing
gem 'i18n-tasks' # adds tests for finding missing and unused translations
end
group :travis do
gem 'heroku-api'
end

View File

@@ -110,6 +110,7 @@ GEM
thread
thread_safe
erubis (2.7.0)
excon (0.43.0)
execjs (2.2.2)
factory_girl (4.5.0)
activesupport (>= 3.0.0)
@@ -136,6 +137,9 @@ GEM
html2haml (>= 1.0.1)
railties (>= 4.0.1)
hashie (3.3.2)
heroku-api (0.3.22)
excon (~> 0.38)
multi_json (~> 1.8)
highline (1.6.21)
hike (1.2.3)
hpricot (0.8.6)
@@ -358,6 +362,7 @@ DEPENDENCIES
gravatar-ultimate
haml
haml-rails
heroku-api
i18n-tasks
jquery-rails
jquery-ui-rails (~> 5.0.2)

25
script/heroku_maintenance.rb Executable file
View File

@@ -0,0 +1,25 @@
#!/usr/bin/env ruby
require 'heroku-api'
require 'yaml'
heroku = Heroku::API.new(:api_key => ENV['HEROKU_API_KEY'])
branch = ENV['TRAVIS_BRANCH']
travis_config = YAML.load_file('.travis.yml')
if travis_config['deploy']['app'].has_key? branch
app = travis_config['deploy']['app'][branch]
else
abort "No Heroku app found for branch #{branch}"
end
case ARGV[0]
when "on"
maintenance_state = 1
when "off"
maintenance_state = 0
else
abort "usage: #{$0} (on|off)"
end
puts "Turning #{maintenance_state} maintenance mode on app #{app}"
heroku.post_app_maintenance(app, maintenance_state)