salesforce-deploy-tool 0.7.3 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/sf +10 -3
- data/lib/salesforcedeploytool/app.rb +52 -9
- data/lib/salesforcedeploytool/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d679e29b245a57fd3d2b37e4457df5a6336122aa
|
4
|
+
data.tar.gz: 6eb175a4de7cf17a15e5bb4cdb45a47d77f158de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00b450d8069c69f3cf53d9c962dc062cafe64006fb0780f4e81aa0299fcd63c6d247c63a9b36a19d34541fc543ab5ffd086ff2d5df91ec2d41e34040f7159759
|
7
|
+
data.tar.gz: c53191a04faad0833c4adb2b45595d9b170f3e4db7fa45beb6fea83f4586c95b83d0c415b4cb5bc3b51bac77cb9ef11099d44ede8ff1ca42ba1c3c98bc0743e7
|
data/bin/sf
CHANGED
@@ -40,8 +40,10 @@ command :init do |c|
|
|
40
40
|
c.option "--sandbox NAME", "-s NAME", "use 'prod' to deploy production or sandbox name"
|
41
41
|
c.action do |args, options|
|
42
42
|
|
43
|
-
#
|
43
|
+
# short flag mapping
|
44
44
|
options.sandbox = options.s if options.s
|
45
|
+
|
46
|
+
# Parameter validation:
|
45
47
|
if options.sandbox.nil? and sandbox.nil?
|
46
48
|
puts "error: please specify sandbox using --sandbox or sf sandbox"
|
47
49
|
exit 1
|
@@ -67,9 +69,12 @@ command :pull do |c|
|
|
67
69
|
c.option "--sandbox NAME", "-s NAME", "use 'prod' to deploy production or sandbox name"
|
68
70
|
c.action do |args, options|
|
69
71
|
|
72
|
+
# short flag mapping
|
73
|
+
options.sandbox = options.s if options.s
|
74
|
+
|
70
75
|
# Parameter validation:
|
71
76
|
if options.sandbox.nil? and sandbox.nil?
|
72
|
-
puts "error: please specify
|
77
|
+
puts "error: please specify sandbox using --sandbox or sf sandbox"
|
73
78
|
exit 1
|
74
79
|
end
|
75
80
|
config[:sandbox] = options.sandbox || sandbox
|
@@ -98,9 +103,10 @@ command :push do |c|
|
|
98
103
|
c.option "--test", "-T", "Deploy and test"
|
99
104
|
c.option "--exclude LIST", "-x LIST", "a CSV list of metadata to exclude when creating destructiveChange.xml"
|
100
105
|
c.option "--append", "Disable destructive change and do an append deploy"
|
106
|
+
c.option "--build_number NUMBER","Record build number on version file"
|
101
107
|
c.action do |args, options|
|
102
108
|
|
103
|
-
# short flag
|
109
|
+
# short flag mapping
|
104
110
|
options.test = true if options.T
|
105
111
|
options.exclude = options.x if options.x
|
106
112
|
options.sandbox = options.s if options.s
|
@@ -144,6 +150,7 @@ command :push do |c|
|
|
144
150
|
end
|
145
151
|
|
146
152
|
# Finally push:
|
153
|
+
sfdt.build_number = options.build_number if not options.build_number.nil?
|
147
154
|
sfdt.push
|
148
155
|
|
149
156
|
end
|
@@ -2,23 +2,55 @@ module SalesforceDeployTool
|
|
2
2
|
|
3
3
|
class App
|
4
4
|
|
5
|
-
|
5
|
+
attr_accessor :build_number
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
@sandbox = config[:sandbox]
|
10
|
-
@username = @sandbox == 'prod' ? config[:username] : config[:username] + '.' + @sandbox
|
11
|
-
@password = config[:password]
|
7
|
+
def initialize config
|
8
|
+
|
12
9
|
@debug = config[:debug]
|
13
10
|
@test = config[:test]
|
14
|
-
@deploy_ignore_files = config[:deploy_ignore_files]
|
15
11
|
|
12
|
+
@build_number = 'N/A'
|
13
|
+
( @git_repo = config[:git_repo] ).nil? and raise "Invalid Config: git_repo not found"
|
14
|
+
( @git_dir = config[:git_dir] ).nil? and raise "Invalid Config: git_dir not found"
|
15
|
+
( @sandbox = config[:sandbox] ).nil? and raise "Invalid Config: sandbox not found"
|
16
|
+
( @password = config[:password] ).nil? and raise "Invalid Config: password not found, please run `sf config`"
|
17
|
+
( @deploy_ignore_files = config[:deploy_ignore_files] ).nil? and raise "Invalid Config: deploy_ignore_files not found"
|
18
|
+
( @build_number_pattern = config[:build_number_pattern] ).nil? and raise "Invalid Config: build_number_pattern not found"
|
19
|
+
( @commit_hash_pattern = config[:commit_hash_pattern] ).nil? and raise "Invalid Config: commit_hash_pattern not found"
|
20
|
+
|
21
|
+
config[:version_file].nil? and raise "Invalid Config: version_file not found"
|
22
|
+
config[:username].nil? and raise "Invalid Config: username not found, please run `sf config`"
|
23
|
+
|
24
|
+
@version_file = File.join(@git_dir,config[:version_file])
|
25
|
+
@username = @sandbox == 'prod' ? config[:username] : config[:username] + '.' + @sandbox
|
16
26
|
@server_url = @sandbox == 'prod' ? 'https://login.salesforce.com' : 'https://test.salesforce.com'
|
17
27
|
|
18
28
|
self.clone if ! Dir.exists? File.join(@git_dir,'.git')
|
19
29
|
|
20
30
|
end
|
21
31
|
|
32
|
+
def commit_hash
|
33
|
+
|
34
|
+
g = Git.open(@git_dir)
|
35
|
+
|
36
|
+
File.open(@version_file,'r+') do |file|
|
37
|
+
content = file.read
|
38
|
+
content.gsub!(/#{@build_number_pattern}/,@build_number)
|
39
|
+
content.gsub!(/#{@commit_hash_pattern}/,g.log.last.sha)
|
40
|
+
file.seek(0,IO::SEEK_SET)
|
41
|
+
file.truncate 0
|
42
|
+
file.write content
|
43
|
+
end if File.exists? @version_file
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
def clean_version
|
48
|
+
|
49
|
+
g = Git.open(@git_dir)
|
50
|
+
g.checkout @version_file
|
51
|
+
|
52
|
+
end
|
53
|
+
|
22
54
|
def clone
|
23
55
|
|
24
56
|
if Dir.exists? File.join(@git_dir,'.git')
|
@@ -74,12 +106,20 @@ module SalesforceDeployTool
|
|
74
106
|
|
75
107
|
exit_code = myexec full_cmd, exec_options
|
76
108
|
|
109
|
+
clean_version
|
110
|
+
|
77
111
|
exit exit_code if exit_code != 0
|
78
112
|
|
79
113
|
end
|
80
114
|
|
81
115
|
def push
|
82
116
|
|
117
|
+
# Working dir
|
118
|
+
Dir.chdir @git_dir
|
119
|
+
|
120
|
+
# Add the commit hash to the version file
|
121
|
+
commit_hash
|
122
|
+
|
83
123
|
# Set env variables to run ant
|
84
124
|
env_vars = ""
|
85
125
|
env_vars += " SF_USERNAME=" + @username
|
@@ -107,15 +147,18 @@ module SalesforceDeployTool
|
|
107
147
|
cmd = @test ? " ant deployAndTestCode" : " ant deployCode"
|
108
148
|
full_cmd = env_vars + cmd
|
109
149
|
|
110
|
-
Dir.chdir @git_dir
|
111
|
-
|
112
150
|
# Delete files to be ignored:
|
113
151
|
@deploy_ignore_files.each do |file|
|
114
152
|
FileUtils.rm file if File.exists? file
|
115
153
|
end
|
116
154
|
|
155
|
+
# Push the code
|
117
156
|
exit_code = myexec full_cmd, exec_options
|
118
157
|
|
158
|
+
# Clean changes on version file
|
159
|
+
clean_version
|
160
|
+
|
161
|
+
# exit with exit_code
|
119
162
|
exit exit_code if exit_code != 0
|
120
163
|
|
121
164
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: salesforce-deploy-tool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Breinlinger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|