bard 0.22.2 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9bda3bb2f2fc44cacaafafffecdbb654f762c7a
4
- data.tar.gz: 08a9891372e7fa4e0df64d2d9d4160e5bae5a315
3
+ metadata.gz: cc1c6c9dceac8bcf010f8f0fbcbdf9b6678d21f1
4
+ data.tar.gz: 2d4b58d4760e2c1c22fc4a1d74cb0c24bacbd567
5
5
  SHA512:
6
- metadata.gz: 07d9b5bf06e1e00e489952112de2d8fba67f56ff3bfa9f9461c4cadb8e0ad14b024fc1307eeb107b97f7eda68f117b4bedd21d0c4cae3519c97a4abe658e4e43
7
- data.tar.gz: 294299ca7e8a3864b9f99c0027cbdaa4f263581bb45c1334e03fd0ddc474a4191d2282de8565f6fe67792fb04f4f957c32d49bc12f53ddaa2b89ef4df6f8d496
6
+ metadata.gz: c5437ee43af1d313b7712c4e86def8311dd67bae1a90082d6170645030a62d7f6a133f55da4d321f01360c86fd04601aa61c49198b40ff5e38d64f3a40a429c0
7
+ data.tar.gz: edb8cdb7ce7b8d60eff67b6f4d5fe57a0d1e80e78da93ef8f8bcaa91df4aadc5c043af243097f3ffee3009300d8204891b1a39c86fd9fc1ab4f79b36abee7bdb
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.22.2
1
+ 0.23.0
@@ -35,8 +35,7 @@ class Bard::CLI < Thor
35
35
  method_options %w( verbose -v ) => :boolean
36
36
  desc "push", "push local changes out to the remote"
37
37
  def push
38
- raise NonFastForwardError unless fast_forward_merge?("origin/#{current_branch}")
39
- run_crucial "git push origin #{current_branch}", true
38
+ run_crucial "git push -u origin #{current_branch}", true
40
39
  end
41
40
 
42
41
  method_options %w( verbose -v ) => :boolean
@@ -50,23 +49,32 @@ class Bard::CLI < Thor
50
49
  end
51
50
 
52
51
  method_options %w( verbose -v ) => :boolean
53
- desc "deploy", "pushes, merges integration branch into master and deploys it to production"
52
+ desc "deploy", "checks that branch is a ff with master, checks with ci, and then merges into master and deploys to production, and deletes branch."
54
53
  def deploy
55
- invoke :push
54
+ branch = current_branch
55
+
56
+ run_crucial "git fetch origin"
57
+ raise MasterNonFastForwardError if not fast_forward_merge? "origin/master", "master"
58
+
59
+ if branch == "master"
60
+ run_crucial "git push origin master"
61
+ invoke :ci
56
62
 
57
- if has_integration_branch?
58
- run_crucial "git fetch origin"
63
+ else
59
64
  run_crucial "git checkout master"
60
- run_crucial "git pull --rebase origin master"
61
- raise MasterNonFastForwardError if not fast_forward_merge? "master", "integration"
65
+ run_crucial "git merge origin/master"
66
+ run_crucial "git checkout #{branch}"
67
+ raise MasterNonFastForwardError if not fast_forward_merge? "master", branch
68
+
69
+ run_crucial "git push -f origin #{branch}"
62
70
 
63
- run_crucial "git merge integration"
71
+ invoke :ci, current_sha
72
+
73
+ run_crucial "git checkout master"
74
+ run_crucial "git merge #{branch}"
64
75
  run_crucial "git push origin master"
65
- run_crucial "git checkout integration"
66
76
  end
67
77
 
68
- invoke :ci
69
-
70
78
  if heroku?
71
79
  run_crucial "git push production master", options.verbose?
72
80
  run_crucial "heroku run rake bootstrap:production:post", options.verbose?
@@ -75,17 +83,23 @@ class Bard::CLI < Thor
75
83
  end
76
84
 
77
85
  puts green("Deploy Succeeded")
86
+
87
+ if branch != "master"
88
+ puts "Deleting branch: #{branch}"
89
+ run_crucial "git push --delete origin #{branch}"
90
+ run_crucial "git branch -d #{branch}"
91
+ end
78
92
  end
79
93
 
80
94
  method_options %w( verbose -v ) => :boolean
81
- desc "ci", "runs ci against master branch"
82
- def ci
95
+ desc "ci", "runs ci against current HEAD"
96
+ def ci sha=current_sha
83
97
  return unless has_ci?
84
98
 
85
- puts "Continuous integration: starting build..."
99
+ puts "Continuous integration: starting build on #{sha}..."
86
100
  last_build_number = get_last_build_number
87
101
  last_time_elapsed = get_last_time_elapsed
88
- start_ci
102
+ start_ci sha
89
103
  sleep(2) while last_build_number == get_last_build_number
90
104
 
91
105
  start_time = Time.new.to_i
@@ -117,16 +131,12 @@ class Bard::CLI < Thor
117
131
  when /<result>SUCCESS<\/result>/ then
118
132
  puts "Continuous integration: success! deploying to production"
119
133
 
120
- else raise "Unknown response from CI server:\n#{response}"
134
+ else raise "Unknown response from CI server: #{response}"
121
135
  end
122
136
  end
123
137
 
124
138
  private
125
139
 
126
- def has_integration_branch?
127
- system 'git show-ref --verify --quiet "refs/heads/integration"'
128
- end
129
-
130
140
  def heroku?
131
141
  `git remote -v`.include? "production\tgit@heroku.com:"
132
142
  end
@@ -139,8 +149,14 @@ class Bard::CLI < Thor
139
149
  `curl -s -I #{ci_host}/?token=botandrose` =~ /\b200 OK\b/
140
150
  end
141
151
 
142
- def start_ci
143
- `curl -s -I -X POST #{ci_host}/build?token=botandrose`
152
+ def start_ci sha=nil
153
+ if sha
154
+ command = "curl -s -I -X POST '#{ci_host}/buildWithParameters?token=botandrose&GIT_REF=#{sha}'"
155
+ else
156
+ command = "curl -s -I -X POST '#{ci_host}/build?token=botandrose'"
157
+ end
158
+ puts command if options.verbose?
159
+ `#{command}`
144
160
  end
145
161
 
146
162
  def get_last_build_number
@@ -67,7 +67,7 @@ Capistrano::Configuration.instance(:must_exist).load do
67
67
 
68
68
  desc "push app to staging"
69
69
  task :stage, :roles => :staging do
70
- branch = ENV.has_key?("BRANCH") ? ENV["BRANCH"] : "integration"
70
+ branch = ENV.fetch("BRANCH")
71
71
  run "cd #{application} && git fetch && git checkout -f origin/#{branch} && bundle && bundle exec rake bootstrap:production"
72
72
  end
73
73
  end
@@ -7,7 +7,7 @@ class Bard::CLI < Thor
7
7
 
8
8
  class MasterNonFastForwardError < Bard::CLI::Error
9
9
  def message
10
- "The master branch has advanced since last deploy, probably due to a bugfix.\n Rebase your integration branch on top of it, and check for breakage."
10
+ "The master branch has advanced since last deploy, probably due to a bugfix.\n Rebase your branch on top of it, and check for breakage."
11
11
  end
12
12
  end
13
13
 
@@ -7,8 +7,11 @@ module Bard::CLI::Git
7
7
  ref.sub(/refs\/heads\//, '') # refs/heads/master ... we want "master"
8
8
  end
9
9
 
10
- def fast_forward_merge?(root = "origin/integration", branch = "HEAD")
11
- run_crucial "git fetch origin"
10
+ def current_sha
11
+ `git rev-parse HEAD`.chomp
12
+ end
13
+
14
+ def fast_forward_merge?(root, branch)
12
15
  root_head = run_crucial "git rev-parse #{root}"
13
16
  branch_head = run_crucial "git rev-parse #{branch}"
14
17
  @common_ancestor = find_common_ancestor root_head, branch_head
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.2
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-19 00:00:00.000000000 Z
12
+ date: 2014-11-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -43,84 +43,84 @@ dependencies:
43
43
  name: rvm-capistrano
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: systemu
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: 1.2.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: 1.2.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: term-ansicolor
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '>='
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
76
  version: 1.0.3
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: 1.0.3
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: bard-rake
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: 0.1.1
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - '>='
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: 0.1.1
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rspec
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ~>
102
+ - - "~>"
103
103
  - !ruby/object:Gem::Version
104
104
  version: 1.3.0
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ~>
109
+ - - "~>"
110
110
  - !ruby/object:Gem::Version
111
111
  version: 1.3.0
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: cucumber
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ~>
116
+ - - "~>"
117
117
  - !ruby/object:Gem::Version
118
118
  version: 0.9.0
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ~>
123
+ - - "~>"
124
124
  - !ruby/object:Gem::Version
125
125
  version: 0.9.0
126
126
  description: This immaculate work of engineering genius allows mere mortals to collaborate
@@ -132,9 +132,9 @@ executables:
132
132
  extensions: []
133
133
  extra_rdoc_files: []
134
134
  files:
135
- - .document
136
- - .gitignore
137
- - .gitmodules
135
+ - ".document"
136
+ - ".gitignore"
137
+ - ".gitmodules"
138
138
  - Gemfile
139
139
  - Gemfile.lock
140
140
  - LICENSE
@@ -171,12 +171,12 @@ require_paths:
171
171
  - lib
172
172
  required_ruby_version: !ruby/object:Gem::Requirement
173
173
  requirements:
174
- - - '>='
174
+ - - ">="
175
175
  - !ruby/object:Gem::Version
176
176
  version: '0'
177
177
  required_rubygems_version: !ruby/object:Gem::Requirement
178
178
  requirements:
179
- - - '>='
179
+ - - ">="
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
182
  requirements: []