deploy_tasks 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.markdown +12 -0
- data/Rakefile +2 -0
- data/deploy_tasks.gemspec +23 -0
- data/lib/deploy_tasks.rb +11 -0
- data/lib/tasks/capistrano.rake +1 -0
- data/lib/tasks/heroku.rake +60 -0
- metadata +88 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.markdown
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "deploy_tasks"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "deploy_tasks"
|
7
|
+
s.version = DeployTasks::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Thomas Maurer"]
|
10
|
+
s.email = ["tma@freshbit.ch"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{Common deploy tasks}
|
13
|
+
s.description = %q{Common deploy tasks}
|
14
|
+
|
15
|
+
s.rubyforge_project = "deploy_tasks"
|
16
|
+
|
17
|
+
s.add_dependency 'rails'
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
end
|
data/lib/deploy_tasks.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# TODO
|
@@ -0,0 +1,60 @@
|
|
1
|
+
namespace :deploy do
|
2
|
+
desc 'Deploy to staging'
|
3
|
+
task :staging do
|
4
|
+
if Rake::Task['trans:fetch:all'].present?
|
5
|
+
message 'Pulling translations..'
|
6
|
+
Rake::Task['trans:fetch:all'].execute
|
7
|
+
end
|
8
|
+
|
9
|
+
if working_tree_dirty?
|
10
|
+
message 'Please clean your dirty tree!'; exit
|
11
|
+
end
|
12
|
+
|
13
|
+
push_to('staging')
|
14
|
+
migrate_database_of_app("#{RAILS_APP}-staging")
|
15
|
+
open_app("#{RAILS_APP}-staging")
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Deploy to production'
|
19
|
+
task :production do
|
20
|
+
message '>> Are you sure to deploy to production? (type yes): ', true
|
21
|
+
if STDIN.gets.chomp == 'yes'
|
22
|
+
if Rake::Task['trans:fetch:all'].present?
|
23
|
+
message 'Pulling translations..'
|
24
|
+
Rake::Task['trans:fetch:all'].execute
|
25
|
+
end
|
26
|
+
|
27
|
+
if working_tree_dirty?
|
28
|
+
message 'Please clean your dirty tree!'; exit
|
29
|
+
end
|
30
|
+
|
31
|
+
push_to('production')
|
32
|
+
migrate_database_of_app('calculate')
|
33
|
+
open_app('calculate')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def working_tree_dirty?
|
38
|
+
`cd #{Rails.root} && git status --short -uno`.present?
|
39
|
+
end
|
40
|
+
|
41
|
+
def push_to(env)
|
42
|
+
message "Pushing to #{env}.."
|
43
|
+
`cd #{Rails.root} && git push #{env} master`
|
44
|
+
end
|
45
|
+
|
46
|
+
def migrate_database_of_app(heroku_app)
|
47
|
+
message "Migrate the database of #{heroku_app}.."
|
48
|
+
`cd #{Rails.root} && heroku rake db:migrate --app #{heroku_app}`
|
49
|
+
end
|
50
|
+
|
51
|
+
def open_app(heroku_app)
|
52
|
+
message 'Opening heroku app..'
|
53
|
+
`cd #{Rails.root} && heroku open --app #{heroku_app}`
|
54
|
+
end
|
55
|
+
|
56
|
+
def message(string, print = false)
|
57
|
+
s = "\e[0;33m\033[1m#{string}\e[0m"
|
58
|
+
print ? print(s) : puts(s)
|
59
|
+
end
|
60
|
+
end
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: deploy_tasks
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Thomas Maurer
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-05-03 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rails
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description: Common deploy tasks
|
36
|
+
email:
|
37
|
+
- tma@freshbit.ch
|
38
|
+
executables: []
|
39
|
+
|
40
|
+
extensions: []
|
41
|
+
|
42
|
+
extra_rdoc_files: []
|
43
|
+
|
44
|
+
files:
|
45
|
+
- .gitignore
|
46
|
+
- Gemfile
|
47
|
+
- README.markdown
|
48
|
+
- Rakefile
|
49
|
+
- deploy_tasks.gemspec
|
50
|
+
- lib/deploy_tasks.rb
|
51
|
+
- lib/tasks/capistrano.rake
|
52
|
+
- lib/tasks/heroku.rake
|
53
|
+
has_rdoc: true
|
54
|
+
homepage: ""
|
55
|
+
licenses: []
|
56
|
+
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
hash: 3
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
version: "0"
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
80
|
+
requirements: []
|
81
|
+
|
82
|
+
rubyforge_project: deploy_tasks
|
83
|
+
rubygems_version: 1.6.2
|
84
|
+
signing_key:
|
85
|
+
specification_version: 3
|
86
|
+
summary: Common deploy tasks
|
87
|
+
test_files: []
|
88
|
+
|