codebase4 1.0.17 → 1.0.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/codebase.rb +6 -7
- data/lib/codebase/capistrano3.rb +3 -4
- data/lib/codebase/cli.rb +17 -19
- data/lib/codebase/config.rb +6 -6
- data/lib/codebase/recipes.rb +4 -4
- metadata +10 -15
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 69d1aa0de1625370fc98a74c82c91204ccabe8ba5883f8556b41c5d5ee12618e
|
4
|
+
data.tar.gz: 364199de786d68bc7eba2b0f765b9c6a0c0303f4d52ede8fe8abf9cd39817b83
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 67b897a3c76534a083d0a59a116b8c131246ed2eda66c277061d6a6926a88639cf4c280db3fb971f636c31e758ed8c6eefa413113fa1529286112a394ec12095
|
7
|
+
data.tar.gz: d71944a8b5408e607201aa7645562f7ced2b3a44ef34dae7dc507922733a7e0f5bf2c3c0b6866c219a46e86b643b6104cd7474a292534945f31e600a9f2120d7
|
data/lib/codebase.rb
CHANGED
@@ -6,26 +6,25 @@ require 'json'
|
|
6
6
|
require 'codebase/config'
|
7
7
|
|
8
8
|
module Codebase
|
9
|
-
|
9
|
+
|
10
10
|
class << self
|
11
11
|
|
12
12
|
# Return the current configuration for the current machine
|
13
13
|
def config
|
14
14
|
@config ||= Config.init
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
## Make an HTTP request
|
18
18
|
def request(url, data)
|
19
19
|
uri = URI.parse(url)
|
20
20
|
req = Net::HTTP::Post.new(uri.path)
|
21
21
|
req.set_form_data(data, ';')
|
22
22
|
res = Net::HTTP.new(uri.host, uri.port)
|
23
|
-
|
23
|
+
|
24
24
|
if uri.scheme == 'https'
|
25
25
|
res.use_ssl = true
|
26
|
-
res.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
27
26
|
end
|
28
|
-
|
27
|
+
|
29
28
|
case res = res.request(req)
|
30
29
|
when Net::HTTPSuccess
|
31
30
|
JSON.parse(res.body)
|
@@ -36,8 +35,8 @@ module Codebase
|
|
36
35
|
raise "An HTTP error occured (#{res.class})"
|
37
36
|
end
|
38
37
|
end
|
39
|
-
|
38
|
+
|
40
39
|
end
|
41
|
-
|
40
|
+
|
42
41
|
end
|
43
42
|
|
data/lib/codebase/capistrano3.rb
CHANGED
@@ -16,11 +16,11 @@ namespace :codebase do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
cmd = ["cb deploy #{previous_revision or "0000000000000000000000000000000000000000"} #{current_revision}"]
|
19
|
-
|
19
|
+
|
20
20
|
cmd << "-s #{servers.uniq.join(',') rescue ''}"
|
21
21
|
cmd << "-b #{branch}"
|
22
22
|
cmd << "-e #{environment}"
|
23
|
-
|
23
|
+
|
24
24
|
## get the repo and project name etc...
|
25
25
|
account, project, repo = nil, nil, nil
|
26
26
|
case repository
|
@@ -39,7 +39,6 @@ namespace :codebase do
|
|
39
39
|
|
40
40
|
cmd << "-r #{project}:#{repo}"
|
41
41
|
cmd << "-h #{account}.codebasehq.com"
|
42
|
-
cmd << "--protocol https"
|
43
42
|
|
44
43
|
puts " running: #{cmd.join(' ')}"
|
45
44
|
system(cmd.join(' ') + "; true")
|
@@ -47,4 +46,4 @@ namespace :codebase do
|
|
47
46
|
|
48
47
|
after 'deploy:finished', 'codebase:log_deployment'
|
49
48
|
|
50
|
-
end
|
49
|
+
end
|
data/lib/codebase/cli.rb
CHANGED
@@ -2,9 +2,9 @@ require 'codebase'
|
|
2
2
|
|
3
3
|
module Codebase
|
4
4
|
class CLI
|
5
|
-
|
5
|
+
|
6
6
|
class Error < StandardError; end
|
7
|
-
|
7
|
+
|
8
8
|
def self.invoke(*args)
|
9
9
|
command = args.shift
|
10
10
|
cmd = self.new
|
@@ -22,7 +22,7 @@ module Codebase
|
|
22
22
|
$stderr.puts "Invalid arguments provided for command ('#{command}')"
|
23
23
|
Process.exit(1)
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def token(account_name, token)
|
27
27
|
Codebase.config.set(:tokens, Hash.new) unless Codebase.config.tokens.is_a?(Hash)
|
28
28
|
Codebase.config.tokens[account_name] = token
|
@@ -43,10 +43,10 @@ module Codebase
|
|
43
43
|
puts "Test failed, are your credentials in ~/.codebase4 correct?"
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def deploy(start_ref, end_ref, *options)
|
48
48
|
options = options_to_hash(options)
|
49
|
-
|
49
|
+
|
50
50
|
hash = {
|
51
51
|
:start_ref => start_ref,
|
52
52
|
:end_ref => end_ref,
|
@@ -54,39 +54,37 @@ module Codebase
|
|
54
54
|
:servers => options['s'] || options['servers'],
|
55
55
|
:branch => options['b'] || options['branch']
|
56
56
|
}
|
57
|
-
|
57
|
+
|
58
58
|
host = options['h'] || options['host']
|
59
59
|
repo = options['r'] || options['repo']
|
60
|
-
|
60
|
+
|
61
61
|
raise Error, "You must specify at least one server using the -s or --servers flag" if blank?(hash[:servers])
|
62
62
|
raise Error, "You must specify the repo using the -r or --repo flag (as project:repo)" if blank?(repo)
|
63
63
|
raise Error, "You must specify the host using the -h or --host flag" if blank?(host)
|
64
|
-
|
64
|
+
|
65
65
|
project, repo = repo.split(':')
|
66
|
-
|
66
|
+
|
67
67
|
puts "Sending deployment information to #{host} (project: '#{project}' repo: '#{repo}')"
|
68
|
-
|
68
|
+
|
69
69
|
puts " Commits......: #{hash[:start_ref]} ... #{hash[:end_ref]}"
|
70
70
|
puts " Environment..: #{hash[:environment] || '-'}"
|
71
71
|
puts " Branch.......: #{hash[:branch] || '-'}"
|
72
72
|
puts " Server(s)....: #{hash[:servers]}"
|
73
|
-
|
73
|
+
|
74
74
|
token = Codebase.config.tokens.is_a?(Hash) && Codebase.config.tokens[host]
|
75
75
|
if token.nil?
|
76
76
|
raise Error, "This account has no token configured locally, use 'codebase token [account] [token]' to configure it"
|
77
77
|
end
|
78
|
-
|
78
|
+
|
79
79
|
puts " Token........: #{token[0,7]}******"
|
80
80
|
hash[:access_token] = token
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
Codebase.request("#{protocol}://#{host}/projects/#{project}/repositories/#{repo}/deployments/add", hash)
|
81
|
+
|
82
|
+
Codebase.request("https://#{host}/projects/#{project}/repositories/#{repo}/deployments/add", hash)
|
85
83
|
puts "Deployment added successfully"
|
86
84
|
end
|
87
85
|
|
88
86
|
private
|
89
|
-
|
87
|
+
|
90
88
|
def options_to_hash(options)
|
91
89
|
hash = Hash.new
|
92
90
|
key = nil
|
@@ -101,10 +99,10 @@ module Codebase
|
|
101
99
|
end
|
102
100
|
hash
|
103
101
|
end
|
104
|
-
|
102
|
+
|
105
103
|
def blank?(*array)
|
106
104
|
array.any? {|a| a.nil? || a.length == 0 }
|
107
105
|
end
|
108
|
-
|
106
|
+
|
109
107
|
end
|
110
108
|
end
|
data/lib/codebase/config.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Codebase
|
2
2
|
class Config
|
3
|
-
|
3
|
+
|
4
4
|
def self.init(path = File.join(ENV['HOME'], '.codebase4'))
|
5
5
|
if File.exist?(path)
|
6
6
|
self.new(path, YAML.load_file(path))
|
@@ -8,25 +8,25 @@ module Codebase
|
|
8
8
|
self.new(path)
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
def initialize(filename, hash = {})
|
13
13
|
@filename = filename
|
14
14
|
@hash = hash
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def method_missing(name)
|
18
18
|
@hash[name.to_s]
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def set(name, value)
|
22
22
|
@hash[name.to_s] = value
|
23
23
|
save
|
24
24
|
value
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def save
|
28
28
|
File.open(@filename, 'w') { |f| f.write(YAML.dump(@hash)) }
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
end
|
32
32
|
end
|
data/lib/codebase/recipes.rb
CHANGED
@@ -12,19 +12,19 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
cmd = ["cb deploy #{previous_revision or "0000000000000000000000000000000000000000"} #{current_revision}"]
|
15
|
-
|
15
|
+
|
16
16
|
set :branch, (respond_to?(:branch) ? branch : 'master')
|
17
|
-
|
17
|
+
|
18
18
|
if respond_to?(:environment)
|
19
19
|
set :environment, environment
|
20
20
|
elsif respond_to?(:rails_env)
|
21
21
|
set :environment, rails_env
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
cmd << "-s #{roles.values.collect{|r| r.servers}.flatten.collect{|s| s.host}.uniq.join(',') rescue ''}"
|
25
25
|
cmd << "-b #{branch}"
|
26
26
|
cmd << "-e #{environment}" if respond_to?(:environment)
|
27
|
-
|
27
|
+
|
28
28
|
## get the repo and project name etc...
|
29
29
|
account, project, repo = nil, nil, nil
|
30
30
|
case fetch(:repository)
|
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codebase4
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.18
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Adam Cooke
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2018-03-14 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: json
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.1.5
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 1.1.5
|
30
27
|
description:
|
@@ -37,35 +34,33 @@ extra_rdoc_files: []
|
|
37
34
|
files:
|
38
35
|
- bin/cb
|
39
36
|
- bin/codebase
|
37
|
+
- lib/codebase.rb
|
40
38
|
- lib/codebase/capistrano3.rb
|
41
39
|
- lib/codebase/cli.rb
|
42
40
|
- lib/codebase/config.rb
|
43
41
|
- lib/codebase/recipes.rb
|
44
|
-
- lib/codebase.rb
|
45
42
|
homepage: http://atechmedia.com
|
46
43
|
licenses: []
|
44
|
+
metadata: {}
|
47
45
|
post_install_message:
|
48
46
|
rdoc_options: []
|
49
47
|
require_paths:
|
50
48
|
- lib
|
51
49
|
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
50
|
requirements:
|
54
|
-
- -
|
51
|
+
- - ">="
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: '0'
|
57
54
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
55
|
requirements:
|
60
|
-
- -
|
56
|
+
- - ">="
|
61
57
|
- !ruby/object:Gem::Version
|
62
58
|
version: '0'
|
63
59
|
requirements: []
|
64
60
|
rubyforge_project:
|
65
|
-
rubygems_version:
|
61
|
+
rubygems_version: 2.7.4
|
66
62
|
signing_key:
|
67
|
-
specification_version:
|
63
|
+
specification_version: 4
|
68
64
|
summary: The RubyGem for Codebase v4 Deployment Tracking (replaces previous codebase
|
69
65
|
gems)
|
70
66
|
test_files: []
|
71
|
-
has_rdoc: false
|