salesforce-deploy-tool 3.2.0 → 3.3.1
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.
- checksums.yaml +4 -4
- data/bin/sf +9 -4
- data/features/pull.feature +10 -0
- data/features/push.feature +49 -1
- data/features/resources/mock/ant +3 -3
- data/features/support/env.rb +3 -0
- data/lib/salesforcedeploytool/app.rb +25 -24
- data/lib/salesforcedeploytool/functions.rb +1 -1
- data/lib/salesforcedeploytool/version.rb +1 -1
- data/tpl/build.xml.erb +21 -50
- 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: 46b7b03cb5230e39c5e43b8abe978f495eb9203a
|
4
|
+
data.tar.gz: 6477f6b74bb04a2cad94faa32b4d873042959d76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 120c50b4c70e78e777f5b39a220ccf411fbec803d5228ebd1eed012dbc69e84946f8b27d6005534e2ddaa673f0bff1be822fcdf9be5747ef1a1ab46c291805c7
|
7
|
+
data.tar.gz: a8276c70f372a0b692028593e2bb3f5692cafb07afbae8d7ebd39cb1b856f9cd34057da8bf59c539a6a97016351f4aeb6f111640a6a8ebf6b98ed6566f1e31d7
|
data/bin/sf
CHANGED
@@ -65,14 +65,19 @@ abort "Config error: username not found in #{GLOBAL_CONFIG_FILE} or through SFDT
|
|
65
65
|
abort "Config error: password not found in #{GLOBAL_CONFIG_FILE} or through SFDT_PASSWORD" \
|
66
66
|
if config[:password].nil? && !['config','-v'].include?(ARGV.first)
|
67
67
|
|
68
|
-
# Create a temporary directory
|
69
|
-
|
68
|
+
# Create a temporary directory if SFDT_TMP_DIR is set, use that and don't delete it
|
69
|
+
# This is to facilitate testinig and inspecting build.xml file
|
70
|
+
if !ENV['SFDT_TMP_DIR'].nil?
|
71
|
+
FileUtils.rm_rf ENV['SFDT_TMP_DIR']
|
72
|
+
FileUtils.mkdir ENV['SFDT_TMP_DIR']
|
73
|
+
end
|
74
|
+
config[:tmp_dir] = ENV['SFDT_TMP_DIR'] || Dir.mktmpdir('sfdt-')
|
70
75
|
|
71
|
-
SalesforceDeployTool::CLI.new.run config
|
72
76
|
begin
|
77
|
+
SalesforceDeployTool::CLI.new.run config
|
73
78
|
rescue => e
|
74
79
|
puts "ERROR: #{e}"
|
75
80
|
exit 1
|
76
81
|
ensure
|
77
|
-
FileUtils.rm_rf config[:tmp_dir] if Dir.exists? config[:tmp_dir]
|
82
|
+
FileUtils.rm_rf config[:tmp_dir] if Dir.exists? config[:tmp_dir] unless ENV['SFDT_TMP_DIR']
|
78
83
|
end
|
data/features/pull.feature
CHANGED
@@ -7,6 +7,9 @@ Feature: Pull code from salesforce
|
|
7
7
|
Scenario: Retrieve code from the default sandbox
|
8
8
|
When I run `sf pull`
|
9
9
|
Then the exit status should be 0
|
10
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
11
|
+
And the file "/tmp/sfdt-test/build.xml" should match /retrieveTarget/
|
12
|
+
And the file "/tmp/sfdt-test/build.xml" should match /unpackaged/
|
10
13
|
And the output should match:
|
11
14
|
"""
|
12
15
|
^INFO: Pulling changes from testEnv using url https://test.salesforce.com.*OK
|
@@ -15,6 +18,7 @@ Feature: Pull code from salesforce
|
|
15
18
|
Scenario: Retrieve code from a specific sandbox
|
16
19
|
When I run `sf pull -s testEnvAlt`
|
17
20
|
Then the exit status should be 0
|
21
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
18
22
|
And the output should match:
|
19
23
|
"""
|
20
24
|
^INFO: Pulling changes from testEnvAlt using url https://test.salesforce.com.*OK
|
@@ -26,6 +30,7 @@ Feature: Pull code from salesforce
|
|
26
30
|
| SFDT_SALESFORCE_URL | https://invalid_url.salesforce.com |
|
27
31
|
When I run `sf pull`
|
28
32
|
Then the exit status should be 1
|
33
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
29
34
|
And the output should match:
|
30
35
|
"""
|
31
36
|
^INFO: Pulling changes from testEnv using url https://invalid_url.*
|
@@ -34,6 +39,7 @@ Feature: Pull code from salesforce
|
|
34
39
|
Scenario: Retrieve code from a production
|
35
40
|
When I run `sf pull -s prod`
|
36
41
|
Then the exit status should be 0
|
42
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
37
43
|
And the output should match:
|
38
44
|
"""
|
39
45
|
^INFO: Pulling changes from prod using url https://login.salesforce.com.*OK$
|
@@ -42,6 +48,7 @@ Feature: Pull code from salesforce
|
|
42
48
|
Scenario: Retrieve code from the default sandbox with debug output
|
43
49
|
When I run `sf pull -d`
|
44
50
|
Then the exit status should be 0
|
51
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
45
52
|
And the output should contain "BUILD SUCCESSFUL"
|
46
53
|
And the output should match:
|
47
54
|
"""
|
@@ -51,6 +58,7 @@ Feature: Pull code from salesforce
|
|
51
58
|
Scenario: Retrieve code from a specific sandbox with debug output
|
52
59
|
When I run `sf pull -s testEnv -d`
|
53
60
|
Then the exit status should be 0
|
61
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
54
62
|
And the output should contain "BUILD SUCCESSFUL"
|
55
63
|
And the output should match:
|
56
64
|
"""
|
@@ -61,6 +69,7 @@ Feature: Pull code from salesforce
|
|
61
69
|
Scenario: Retrieve code from the default sandbox with debug output and specifying ant library path
|
62
70
|
When I run `sf pull -d -l lib/ant34.jar`
|
63
71
|
Then the exit status should be 0
|
72
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
64
73
|
And the output should match:
|
65
74
|
"""
|
66
75
|
^INFO: Pulling changes from testEnv using url https://test.salesforce.com $
|
@@ -78,6 +87,7 @@ Feature: Pull code from salesforce
|
|
78
87
|
| SFDT_ANT_LIB | lib/ant34.jar |
|
79
88
|
When I run `sf pull -d`
|
80
89
|
Then the exit status should be 0
|
90
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:retrieve/
|
81
91
|
And the output should match:
|
82
92
|
"""
|
83
93
|
^INFO: Pulling changes from testEnv using url https://test.salesforce.com $
|
data/features/push.feature
CHANGED
@@ -8,6 +8,7 @@ Feature: Push code to salesforce
|
|
8
8
|
When I run `sf push`
|
9
9
|
Then the exit status should be 0
|
10
10
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
11
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
11
12
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
12
13
|
And the output should match:
|
13
14
|
"""
|
@@ -20,6 +21,7 @@ Feature: Push code to salesforce
|
|
20
21
|
When I run `sf push -s testEnvAlt`
|
21
22
|
Then the exit status should be 0
|
22
23
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
24
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
23
25
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
24
26
|
And the output should match:
|
25
27
|
"""
|
@@ -31,6 +33,7 @@ Feature: Push code to salesforce
|
|
31
33
|
Scenario: Push code to production should use the url login.salesorce.com
|
32
34
|
When I run `sf push -s prod`
|
33
35
|
Then the exit status should be 0
|
36
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
34
37
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
35
38
|
And the output should match:
|
36
39
|
"""
|
@@ -53,6 +56,8 @@ Feature: Push code to salesforce
|
|
53
56
|
Scenario: Push code to a sandbox and trigger all the tests
|
54
57
|
When I run `sf push -T`
|
55
58
|
Then the exit status should be 0
|
59
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
60
|
+
And the file "/tmp/sfdt-test/build.xml" should match /runAllTests.*true/
|
56
61
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
57
62
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
58
63
|
And the output should match:
|
@@ -64,6 +69,8 @@ Feature: Push code to salesforce
|
|
64
69
|
Scenario: Push code to a sandbox and trigger all the tests in debug mode
|
65
70
|
When I run `sf push -T -d`
|
66
71
|
Then the exit status should be 0
|
72
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
73
|
+
And the file "/tmp/sfdt-test/build.xml" should match /runAllTests.*true/
|
67
74
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
68
75
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
69
76
|
And the output should match /^.* testEnv .*BUILD SUCCESSFUL.*Diff between.*Changes detected.*File generated.*Running Test:.*DEPLOYMENT SUCCEEDED.*BUILD SUCCESSFUL.*$/
|
@@ -71,6 +78,7 @@ Feature: Push code to salesforce
|
|
71
78
|
Scenario: Push code to a sandbox in append mode
|
72
79
|
When I run `sf push -a`
|
73
80
|
Then the exit status should be 0
|
81
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
74
82
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should not exist
|
75
83
|
And the output should match:
|
76
84
|
"""
|
@@ -80,6 +88,8 @@ Feature: Push code to salesforce
|
|
80
88
|
Scenario: Push code to a sandbox in append mode and run all tests
|
81
89
|
When I run `sf push -a -T`
|
82
90
|
Then the exit status should be 0
|
91
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
92
|
+
And the file "/tmp/sfdt-test/build.xml" should match /runAllTests.*true/
|
83
93
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should not exist
|
84
94
|
And the output should match:
|
85
95
|
"""
|
@@ -89,6 +99,8 @@ Feature: Push code to salesforce
|
|
89
99
|
Scenario: Push code to a sandbox in append mode and run all tests and output debug information
|
90
100
|
When I run `sf push -a -T -d`
|
91
101
|
Then the exit status should be 0
|
102
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
103
|
+
And the file "/tmp/sfdt-test/build.xml" should match /runAllTests.*true/
|
92
104
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should not exist
|
93
105
|
And the output should match:
|
94
106
|
"""
|
@@ -110,6 +122,7 @@ Feature: Push code to salesforce
|
|
110
122
|
When I watch "repo/salesforce/src/classes/VersionTest.cls" for changes and copy to "test_file"
|
111
123
|
And I run `sf push --build_number 123456789`
|
112
124
|
Then the exit status should be 0
|
125
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
113
126
|
And the file "test_file" should contain "123456789"
|
114
127
|
And the file "repo/salesforce/src/classes/VersionTest.cls" should contain "%%BUILD_NUMBER%%"
|
115
128
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
@@ -131,6 +144,7 @@ Feature: Push code to salesforce
|
|
131
144
|
And the file "test_file" should contain "aac66ee0d404c124fbcafd32a054664de4fdd3da"
|
132
145
|
And the file "repo/salesforce/src/classes/VersionTest.cls" should contain "%%COMMIT_HASH%%"
|
133
146
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
147
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
134
148
|
And the output should match:
|
135
149
|
"""
|
136
150
|
^INFO: Pulling changes from testEnv using url https://test.salesforce.com to temporary directory to generate destructiveChanges.xml.*OK$
|
@@ -162,6 +176,9 @@ Feature: Push code to salesforce
|
|
162
176
|
When I run `sf push -r individual_test -d`
|
163
177
|
Then the exit status should be 0
|
164
178
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
179
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
180
|
+
And the file "/tmp/sfdt-test/build.xml" should match /testLevel.*RunSpecifiedTests/
|
181
|
+
And the file "/tmp/sfdt-test/build.xml" should match /runTest/
|
165
182
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
166
183
|
And the output should match:
|
167
184
|
"""
|
@@ -183,6 +200,7 @@ Feature: Push code to salesforce
|
|
183
200
|
And I run `sf push --build_number 123456789`
|
184
201
|
Then the exit status should be 0
|
185
202
|
And the file "test_file" should contain "123456789"
|
203
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
186
204
|
And the file "repo/salesforce/src/classes/VersionTest.cls" should contain "%%BUILD_NUMBER%%"
|
187
205
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
188
206
|
And the output should match:
|
@@ -201,6 +219,7 @@ Feature: Push code to salesforce
|
|
201
219
|
And I run `sf push`
|
202
220
|
Then the exit status should be 0
|
203
221
|
And the file "test_file" should contain "aac66ee0d404c124fbcafd32a054664de4fdd3da"
|
222
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
204
223
|
And the file "repo/salesforce/src/classes/VersionTest.cls" should contain "%%COMMIT_HASH%%"
|
205
224
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
206
225
|
And the output should match:
|
@@ -233,6 +252,9 @@ Feature: Push code to salesforce
|
|
233
252
|
When I run `sf push -r individual_test -d`
|
234
253
|
Then the exit status should be 0
|
235
254
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
255
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
256
|
+
And the file "/tmp/sfdt-test/build.xml" should match /testLevel.*RunSpecifiedTests/
|
257
|
+
And the file "/tmp/sfdt-test/build.xml" should match /runTest/
|
236
258
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
237
259
|
And the output should match:
|
238
260
|
"""
|
@@ -245,10 +267,31 @@ Feature: Push code to salesforce
|
|
245
267
|
And the output should match /Running Test: .*/
|
246
268
|
And the output should match /DEPLOYMENT SUCCEEDED.*BUILD SUCCESSFUL/
|
247
269
|
|
270
|
+
Scenario: Push code to a sandbox in check only mode using debug and Test
|
271
|
+
When I run `sf push -c -d -T`
|
272
|
+
Then the exit status should be 0
|
273
|
+
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
274
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
275
|
+
And the file "/tmp/sfdt-test/build.xml" should match /checkOnly.*true/
|
276
|
+
And the file "/tmp/sfdt-test/build.xml" should match /runAllTests.*true/
|
277
|
+
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
278
|
+
And the output should match:
|
279
|
+
"""
|
280
|
+
^INFO: Deploying and Testing code to testEnv:.*$
|
281
|
+
^$
|
282
|
+
^Buildfile: .*$
|
283
|
+
^$
|
284
|
+
^checkAndTestCode:$
|
285
|
+
"""
|
286
|
+
And the output should match /Running Test/
|
287
|
+
And the output should match /DEPLOYMENT SUCCEEDED.*BUILD SUCCESSFUL/
|
288
|
+
|
248
289
|
Scenario: Push code to a sandbox in check only mode using debug
|
249
290
|
When I run `sf push -c -d`
|
250
291
|
Then the exit status should be 0
|
251
292
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
293
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
294
|
+
And the file "/tmp/sfdt-test/build.xml" should match /checkOnly.*true/
|
252
295
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
253
296
|
And the output should match:
|
254
297
|
"""
|
@@ -256,7 +299,7 @@ Feature: Push code to salesforce
|
|
256
299
|
^$
|
257
300
|
^Buildfile: .*$
|
258
301
|
^$
|
259
|
-
^
|
302
|
+
^checkCode:$
|
260
303
|
"""
|
261
304
|
And the output should match /DEPLOYMENT SUCCEEDED.*BUILD SUCCESSFUL/
|
262
305
|
|
@@ -264,6 +307,7 @@ Feature: Push code to salesforce
|
|
264
307
|
When I run `sf push -e Account.Sort__c -d`
|
265
308
|
Then the exit status should be 0
|
266
309
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
310
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
267
311
|
And the output should match /Pulling.*testEnv.*https:..test.salesforce.com.*destructiveChanges.xml/
|
268
312
|
And the output should match /excluded: Account.Sort__c/
|
269
313
|
And the output should match /INFO: Deploying code to testEnv/
|
@@ -273,6 +317,7 @@ Feature: Push code to salesforce
|
|
273
317
|
When I run `sf push -i apexclass -d`
|
274
318
|
Then the exit status should be 0
|
275
319
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
320
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
276
321
|
And the file "repo/salesforce/src/destructiveChanges.xml" should contain "ApexClass"
|
277
322
|
And the file "repo/salesforce/src/destructiveChanges.xml" should not contain "ApexPage"
|
278
323
|
And the output should match /Pulling.*testEnv.*https:..test.salesforce.com.*destructiveChanges.xml/
|
@@ -284,6 +329,7 @@ Feature: Push code to salesforce
|
|
284
329
|
When I run `sf push -e NewVersionTest -d`
|
285
330
|
Then the exit status should be 0
|
286
331
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
332
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
287
333
|
And the file "repo/salesforce/src/destructiveChanges.xml" should not contain "ApexClass"
|
288
334
|
And the file "repo/salesforce/src/destructiveChanges.xml" should not contain "NewVersionTest"
|
289
335
|
And the file "repo/salesforce/src/destructiveChanges.xml" should contain "ApexPage"
|
@@ -300,6 +346,7 @@ Feature: Push code to salesforce
|
|
300
346
|
When I run `sf push -d`
|
301
347
|
Then the exit status should be 0
|
302
348
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
349
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
303
350
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
304
351
|
And the output should match:
|
305
352
|
"""
|
@@ -316,6 +363,7 @@ Feature: Push code to salesforce
|
|
316
363
|
When I run `sf push -l lib/ant34.jar -d`
|
317
364
|
Then the exit status should be 0
|
318
365
|
And a file named "repo/salesforce/src/destructiveChanges.xml" should exist
|
366
|
+
And the file "/tmp/sfdt-test/build.xml" should match /sf:deploy/
|
319
367
|
And the file "repo/salesforce/src/destructiveChanges.xml" should match /ApexClass|ApexPage/
|
320
368
|
And the output should match:
|
321
369
|
"""
|
data/features/resources/mock/ant
CHANGED
@@ -157,7 +157,7 @@ BUILD SUCCESSFUL
|
|
157
157
|
EOF
|
158
158
|
fi
|
159
159
|
;;
|
160
|
-
"deployAndTestCode")
|
160
|
+
"deployAndTestCode"|"checkAndTestCode")
|
161
161
|
cat << EOF
|
162
162
|
Buildfile: ${PWD}/build.xml
|
163
163
|
|
@@ -213,11 +213,11 @@ ${COMMAND}:
|
|
213
213
|
BUILD SUCCESSFUL
|
214
214
|
EOF
|
215
215
|
;;
|
216
|
-
"
|
216
|
+
"checkCode")
|
217
217
|
cat << EOF
|
218
218
|
Buildfile: /home/vagrant/salesforce/build.xml
|
219
219
|
|
220
|
-
|
220
|
+
checkCode:
|
221
221
|
[sf:deploy] Request for a deploy submitted successfully.
|
222
222
|
[sf:deploy] Request ID for the current deploy task: 0Afg000000Dwn66CAB
|
223
223
|
[sf:deploy] Waiting for server to finish processing the request...
|
data/features/support/env.rb
CHANGED
@@ -9,6 +9,9 @@ ENV["HOME"] = new_home
|
|
9
9
|
FileUtils.rm_rf new_home if Dir.exists? new_home
|
10
10
|
FileUtils.mkdir new_home
|
11
11
|
|
12
|
+
# Set a temporary dir to inspect build.xml
|
13
|
+
ENV["SFDT_TMP_DIR"] = '/tmp/sfdt-test'
|
14
|
+
|
12
15
|
# Cucumber / aruba configuration parameters
|
13
16
|
Before do
|
14
17
|
@aruba_timeout_seconds = 300
|
@@ -102,19 +102,16 @@ module SalesforceDeployTool
|
|
102
102
|
# Parameter validation
|
103
103
|
raise "package.xml not found under #{@full_src_dir}" if !File.exists? File.join(@full_src_dir,'package.xml')
|
104
104
|
|
105
|
-
renderer = ERB.new(@buildxml_erb, nil,'%<>-')
|
106
|
-
File.open('build.xml','w') {|f| f.write renderer.result(binding) }
|
107
|
-
|
108
105
|
env_vars = ""
|
109
106
|
env_vars += " SF_SRC_DIR=" + @full_src_dir
|
110
107
|
env_vars += " SF_USERNAME=" + @username
|
111
108
|
env_vars += " SF_PASSWORD=" + @password
|
112
109
|
env_vars += " SF_SERVERURL=" + @server_url
|
113
|
-
|
114
|
-
|
115
|
-
|
110
|
+
ant_cmd = " ant"
|
111
|
+
ant_cmd += " -lib #{@libant}" if @libant
|
112
|
+
target = " retrieveCode"
|
116
113
|
|
117
|
-
full_cmd = env_vars +
|
114
|
+
full_cmd = env_vars + ant_cmd + target
|
118
115
|
|
119
116
|
exec_options = {
|
120
117
|
:stderr => @debug,
|
@@ -129,7 +126,9 @@ module SalesforceDeployTool
|
|
129
126
|
exec_options[:failmsg] = nil
|
130
127
|
end
|
131
128
|
|
132
|
-
#
|
129
|
+
# Generate build.xml and run command
|
130
|
+
renderer = ERB.new(@buildxml_erb, nil,'%<>-')
|
131
|
+
File.open('build.xml','w') {|f| f.write renderer.result(binding) }
|
133
132
|
exit_code = myexec full_cmd, exec_options
|
134
133
|
|
135
134
|
# Delete files to be ignored:
|
@@ -146,16 +145,6 @@ module SalesforceDeployTool
|
|
146
145
|
# Parameter validation
|
147
146
|
raise "package.xml not found under #{@full_src_dir}" if !File.exists? File.join(@full_src_dir,'package.xml')
|
148
147
|
|
149
|
-
renderer = ERB.new(@buildxml_erb, nil,'%<>-')
|
150
|
-
File.open('build.xml','w') {|f| f.write renderer.result(binding) }
|
151
|
-
|
152
|
-
# Set env variables to run ant
|
153
|
-
env_vars = ""
|
154
|
-
env_vars += " SF_SRC_DIR=" + @full_src_dir
|
155
|
-
env_vars += " SF_USERNAME=" + @username
|
156
|
-
env_vars += " SF_PASSWORD=" + @password
|
157
|
-
env_vars += " SF_SERVERURL=" + @server_url
|
158
|
-
|
159
148
|
# myexec options
|
160
149
|
exec_options = {
|
161
150
|
:stderr => @debug,
|
@@ -170,30 +159,42 @@ module SalesforceDeployTool
|
|
170
159
|
exec_options[:failmsg] = nil
|
171
160
|
end
|
172
161
|
|
162
|
+
# Set env variables to run ant
|
163
|
+
env_vars = ""
|
164
|
+
env_vars += " SF_SRC_DIR=" + @full_src_dir
|
165
|
+
env_vars += " SF_USERNAME=" + @username
|
166
|
+
env_vars += " SF_PASSWORD=" + @password
|
167
|
+
env_vars += " SF_SERVERURL=" + @server_url
|
168
|
+
|
169
|
+
# Command
|
173
170
|
ant_cmd = " ant"
|
174
171
|
ant_cmd += " -lib #{@libant}" if @libant
|
172
|
+
|
173
|
+
# Target
|
175
174
|
if @run_all_tests
|
176
|
-
|
175
|
+
target = " deployAndTestCode"
|
177
176
|
else
|
178
177
|
if ! @run_tests.empty?
|
179
|
-
|
178
|
+
target = " deployAndRunSpecifiedTests"
|
180
179
|
else
|
181
|
-
|
180
|
+
target = " deployCode"
|
182
181
|
end
|
183
182
|
end
|
184
183
|
|
185
184
|
if @check_only
|
186
|
-
|
185
|
+
target = target.gsub('deploy','check')
|
187
186
|
end
|
188
187
|
|
189
|
-
full_cmd = env_vars + ant_cmd +
|
188
|
+
full_cmd = env_vars + ant_cmd + target
|
190
189
|
|
191
190
|
# Delete files to be ignored:
|
192
191
|
@deploy_ignore_files.each do |file|
|
193
192
|
FileUtils.rm file if File.exists? file
|
194
193
|
end
|
195
194
|
|
196
|
-
#
|
195
|
+
# Generate build.xml and run command
|
196
|
+
renderer = ERB.new(@buildxml_erb, nil,'%<>-')
|
197
|
+
File.open('build.xml','w') {|f| f.write renderer.result(binding) }
|
197
198
|
exit_code = myexec full_cmd, exec_options
|
198
199
|
|
199
200
|
# exit with exit_code
|
@@ -21,7 +21,7 @@ def myexec cmd, opts = {}
|
|
21
21
|
opts[:stderr] = false if opts[:stderr].nil?
|
22
22
|
opts[:stdout] = false if opts[:stdout].nil?
|
23
23
|
opts[:exit_on_error] = true if opts[:exit_on_error].nil?
|
24
|
-
opts[:timeout] =
|
24
|
+
opts[:timeout] = 7200 if opts[:timeout].nil?
|
25
25
|
opts[:spinner] = true if opts[:spinner].nil?
|
26
26
|
opts[:message] = false if opts[:message].nil?
|
27
27
|
opts[:okmsg] = false if opts[:okmsg].nil?
|
data/tpl/build.xml.erb
CHANGED
@@ -2,65 +2,36 @@
|
|
2
2
|
|
3
3
|
<property environment="env"/>
|
4
4
|
|
5
|
-
<target name="
|
6
|
-
<sf
|
7
|
-
username="${env.SF_USERNAME}"
|
8
|
-
password="${env.SF_PASSWORD}"
|
9
|
-
serverurl="${env.SF_SERVERURL}"
|
10
|
-
deployRoot="${env.SF_SRC_DIR}"
|
5
|
+
<target name="<%= target.gsub(' ','') %>">
|
6
|
+
<sf:<%= target.match(/deploy|check/) ? 'deploy' : 'retrieve'%>
|
11
7
|
maxPoll="200"
|
12
|
-
rollbackOnError="true" >
|
13
|
-
</sf:deploy>
|
14
|
-
</target>
|
15
|
-
|
16
|
-
<target name="checkOnlyCode">
|
17
|
-
<sf:deploy
|
18
8
|
username="${env.SF_USERNAME}"
|
19
9
|
password="${env.SF_PASSWORD}"
|
20
10
|
serverurl="${env.SF_SERVERURL}"
|
11
|
+
<% if target.match(/retrieve/) -%>
|
12
|
+
retrieveTarget="${env.SF_SRC_DIR}"
|
13
|
+
unpackaged="${env.SF_SRC_DIR}/package.xml"
|
14
|
+
<% end -%>
|
15
|
+
<% if target.match(/deploy|check/) -%>
|
21
16
|
deployRoot="${env.SF_SRC_DIR}"
|
22
|
-
|
17
|
+
rollbackOnError="true"
|
18
|
+
<% end -%>
|
19
|
+
<% if @check_only -%>
|
23
20
|
checkOnly="true"
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
maxPoll="200"
|
35
|
-
rollbackOnError="true"
|
36
|
-
testLevel="RunSpecifiedTests">
|
21
|
+
<% end -%>
|
22
|
+
<% if @run_all_tests -%>
|
23
|
+
runAllTests="true"
|
24
|
+
<% end -%>
|
25
|
+
<% if !@run_tests.empty? -%>
|
26
|
+
testLevel="RunSpecifiedTests"
|
27
|
+
<% end -%>
|
28
|
+
<% if !@check_only -%>
|
29
|
+
<% end -%>
|
30
|
+
>
|
37
31
|
<% @run_tests.each do |test| -%>
|
38
32
|
<runTest><%= test %></runTest>
|
39
33
|
<% end -%>
|
40
|
-
</sf:
|
41
|
-
</target>
|
42
|
-
|
43
|
-
<target name="deployAndTestCode">
|
44
|
-
<sf:deploy
|
45
|
-
username="${env.SF_USERNAME}"
|
46
|
-
password="${env.SF_PASSWORD}"
|
47
|
-
serverurl="${env.SF_SERVERURL}"
|
48
|
-
deployRoot="${env.SF_SRC_DIR}"
|
49
|
-
maxPoll="200"
|
50
|
-
runAllTests="true"
|
51
|
-
rollbackOnError="true" >
|
52
|
-
</sf:deploy>
|
53
|
-
</target>
|
54
|
-
|
55
|
-
<target name="retrieveCode">
|
56
|
-
<sf:retrieve
|
57
|
-
username="${env.SF_USERNAME}"
|
58
|
-
password="${env.SF_PASSWORD}"
|
59
|
-
serverurl="${env.SF_SERVERURL}"
|
60
|
-
retrieveTarget="${env.SF_SRC_DIR}"
|
61
|
-
maxPoll="200"
|
62
|
-
unpackaged="${env.SF_SRC_DIR}/package.xml"
|
63
|
-
/>
|
34
|
+
</sf:<%= target.match(/deploy|check/) ? 'deploy' : 'retrieve'%>>
|
64
35
|
</target>
|
65
36
|
|
66
37
|
</project>
|
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: 3.
|
4
|
+
version: 3.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Breinlinger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|