a2zdeploy 1.0.12 → 1.0.13
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/Gemfile.lock +1 -1
- data/a2zdeploy.gemspec +1 -1
- data/lib/input_validator.rb +77 -68
- data/lib/proget_api.rb +20 -20
- data/lib/rollback.rb +2 -2
- data/lib/rollbackall.rb +2 -2
- data/lib/upgrade.rb +10 -9
- data/lib/upgradeall.rb +13 -6
- data/lib/version_map.rb +4 -8
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3f05346bc3f5cea73f05b1649fa634d19abed1ae
|
|
4
|
+
data.tar.gz: 535e19fb386f8a297144c6a0dbe3c7247c318297
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3badb1ab50f242f7197975f4caef07829e2ca3d1ad41831ec494e4c1af8662bc3fc3690256fd6f9b6da7313b9fac8fe8e5e834a2dd6818f334f336b931619d8c
|
|
7
|
+
data.tar.gz: 6fa9b29b513dad46ca02f61f5cbd29ba99442c7bd71a43a8caea4c9c5563b4ed426c48eedf66337b4fa34f11761146e3956705c93b456c9f6eca845c14e07ea5
|
data/Gemfile.lock
CHANGED
data/a2zdeploy.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'a2zdeploy'
|
|
3
|
-
s.version = '1.0.
|
|
3
|
+
s.version = '1.0.13'
|
|
4
4
|
s.date = '2016-02-08'
|
|
5
5
|
s.summary = 'Given a project dependency chain, updates versions, builds, tests, manages service and cloud settings as well as build environment configuration'
|
|
6
6
|
s.description = 'Automated Upgrades Gem. Provides version upgrades, build and deployment configuration management'
|
data/lib/input_validator.rb
CHANGED
|
@@ -26,93 +26,101 @@ class InputValidator
|
|
|
26
26
|
yield 'Config map must be a non-nil class of type Hashit'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
node_name = 'manifest'
|
|
30
|
-
yield @simple_validator.method_exists manifest, 'version_source'
|
|
31
|
-
yield @simple_validator.method_value_not_nil manifest, 'version_source'
|
|
32
|
-
yield @simple_validator.method_exists manifest.version_source, 'repo_url'
|
|
33
|
-
yield @simple_validator.method_value_not_nil_or_empty manifest.version_source, 'repo_url'
|
|
34
|
-
yield @simple_validator.method_exists manifest.version_source, 'branch'
|
|
35
|
-
yield @simple_validator.method_value_not_nil_or_empty manifest.version_source, 'branch'
|
|
36
|
-
yield @simple_validator.method_exists manifest, 'projects'
|
|
37
|
-
yield @simple_validator.method_value_not_nil manifest, 'projects'
|
|
29
|
+
@node_name = 'manifest'
|
|
30
|
+
yield @simple_validator.method_exists manifest, 'version_source'
|
|
31
|
+
yield @simple_validator.method_value_not_nil manifest, 'version_source'
|
|
32
|
+
yield @simple_validator.method_exists manifest.version_source, 'repo_url'
|
|
33
|
+
yield @simple_validator.method_value_not_nil_or_empty manifest.version_source, 'repo_url'
|
|
34
|
+
yield @simple_validator.method_exists manifest.version_source, 'branch'
|
|
35
|
+
yield @simple_validator.method_value_not_nil_or_empty manifest.version_source, 'branch'
|
|
36
|
+
yield @simple_validator.method_exists manifest, 'projects'
|
|
37
|
+
yield @simple_validator.method_value_not_nil manifest, 'projects'
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def validate_project_node project
|
|
41
41
|
|
|
42
|
-
node_name = 'project'
|
|
42
|
+
@node_name = 'project'
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
# ensure is_root value's boolean only if the key exists
|
|
45
|
+
msg = @simple_validator.method_exists project, 'is_root'
|
|
46
|
+
if msg.nil?
|
|
47
|
+
msg = @simple_validator.method_value_not_nil_or_empty project, 'is_root'
|
|
48
|
+
project.metadata.is_root = project.metadata.is_root.downcase == 'y' if msg.nil?
|
|
49
|
+
else
|
|
50
|
+
yield msg
|
|
51
|
+
end
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
yield @simple_validator.method_exists project
|
|
52
|
-
yield @simple_validator.
|
|
53
|
+
# previous and next keys are required, their values are not
|
|
54
|
+
yield @simple_validator.method_exists project, 'next'
|
|
55
|
+
yield @simple_validator.method_exists project, 'previous'
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
yield @simple_validator.
|
|
57
|
+
@node_name = 'project.metadata'
|
|
58
|
+
yield @simple_validator.method_exists project.metadata, 'repo_url'
|
|
59
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata, 'repo_url'
|
|
56
60
|
|
|
57
|
-
yield @simple_validator.method_exists project.metadata, '
|
|
58
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata, '
|
|
61
|
+
yield @simple_validator.method_exists project.metadata, 'branch'
|
|
62
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata, 'branch'
|
|
59
63
|
|
|
60
|
-
yield @simple_validator.method_exists project.metadata, '
|
|
61
|
-
|
|
64
|
+
yield @simple_validator.method_exists project.metadata, 'should_upgrade'
|
|
65
|
+
msg = @simple_validator.method_value_not_nil_or_empty project.metadata, 'should_upgrade'
|
|
66
|
+
project.metadata.should_upgrade = project.metadata.should_upgrade.downcase == 'y' if msg.nil?
|
|
67
|
+
yield msg
|
|
62
68
|
|
|
63
|
-
yield @simple_validator.method_exists project.metadata, 'should_publish_nuget'
|
|
64
|
-
|
|
69
|
+
yield @simple_validator.method_exists project.metadata, 'should_publish_nuget'
|
|
70
|
+
msg = @simple_validator.method_value_not_nil_or_empty project.metadata, 'should_publish_nuget'
|
|
71
|
+
project.metadata.should_publish_nuget = project.metadata.should_publish_nuget.downcase == 'y' if msg.nil?
|
|
72
|
+
yield msg
|
|
65
73
|
|
|
66
|
-
yield @simple_validator.method_exists project.metadata, 'env_vars'
|
|
67
|
-
yield @simple_validator.method_value_not_nil project.metadata, 'env_vars'
|
|
74
|
+
yield @simple_validator.method_exists project.metadata, 'env_vars'
|
|
75
|
+
yield @simple_validator.method_value_not_nil project.metadata, 'env_vars'
|
|
68
76
|
|
|
69
|
-
yield @simple_validator.method_exists project.metadata, 'status'
|
|
70
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata, 'status'
|
|
77
|
+
yield @simple_validator.method_exists project.metadata, 'status'
|
|
78
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata, 'status'
|
|
71
79
|
|
|
72
|
-
yield @simple_validator.method_exists project.metadata, 'build_configuration_id'
|
|
73
|
-
yield @simple_validator.method_exists project.metadata, 'build_wait_time_in_secs'
|
|
80
|
+
yield @simple_validator.method_exists project.metadata, 'build_configuration_id'
|
|
81
|
+
yield @simple_validator.method_exists project.metadata, 'build_wait_time_in_secs'
|
|
74
82
|
|
|
75
|
-
node_name = 'project.metadata.env_vars'
|
|
76
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'env'
|
|
77
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'env'
|
|
83
|
+
@node_name = 'project.metadata.env_vars'
|
|
84
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'env'
|
|
85
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'env'
|
|
78
86
|
|
|
79
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'service_name'
|
|
80
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'service_name'
|
|
87
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'service_name'
|
|
88
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'service_name'
|
|
81
89
|
|
|
82
90
|
if !@test_mode
|
|
83
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'AI_InstrumentationKey'
|
|
84
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'AI_InstrumentationKey'
|
|
91
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'AI_InstrumentationKey'
|
|
92
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'AI_InstrumentationKey'
|
|
85
93
|
|
|
86
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'AppClientId'
|
|
87
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'AppClientId'
|
|
94
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'AppClientId'
|
|
95
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'AppClientId'
|
|
88
96
|
|
|
89
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'RuntimePath'
|
|
90
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'RuntimePath'
|
|
97
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'RuntimePath'
|
|
98
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'RuntimePath'
|
|
91
99
|
|
|
92
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'SettingsAccount'
|
|
93
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'SettingsAccount'
|
|
100
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'SettingsAccount'
|
|
101
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'SettingsAccount'
|
|
94
102
|
|
|
95
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'SettingsAccountKey'
|
|
96
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'SettingsAccountKey'
|
|
103
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'SettingsAccountKey'
|
|
104
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'SettingsAccountKey'
|
|
97
105
|
|
|
98
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'unitestconnectionString'
|
|
99
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'unitestconnectionString'
|
|
106
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'unitestconnectionString'
|
|
107
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'unitestconnectionString'
|
|
100
108
|
|
|
101
|
-
yield @simple_validator.method_exists project.metadata.env_vars, 'should_update_settings_connstr'
|
|
102
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'should_update_settings_connstr'
|
|
109
|
+
yield @simple_validator.method_exists project.metadata.env_vars, 'should_update_settings_connstr'
|
|
110
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'should_update_settings_connstr'
|
|
103
111
|
end
|
|
104
112
|
|
|
105
|
-
node_name = 'project.metadata.semver'
|
|
106
|
-
yield @simple_validator.method_exists project.metadata, 'semver'
|
|
107
|
-
yield @simple_validator.method_value_not_nil project.metadata, 'semver'
|
|
108
|
-
yield @simple_validator.method_exists project.metadata.semver, 'file'
|
|
109
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.semver, 'file'
|
|
113
|
+
@node_name = 'project.metadata.semver'
|
|
114
|
+
yield @simple_validator.method_exists project.metadata, 'semver'
|
|
115
|
+
yield @simple_validator.method_value_not_nil project.metadata, 'semver'
|
|
116
|
+
yield @simple_validator.method_exists project.metadata.semver, 'file'
|
|
117
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.semver, 'file'
|
|
110
118
|
|
|
111
|
-
yield @simple_validator.method_exists project.metadata.semver, 'dimension'
|
|
112
|
-
yield @simple_validator.method_value_not_nil_or_empty project.metadata.semver, 'dimension'
|
|
119
|
+
yield @simple_validator.method_exists project.metadata.semver, 'dimension'
|
|
120
|
+
yield @simple_validator.method_value_not_nil_or_empty project.metadata.semver, 'dimension'
|
|
113
121
|
|
|
114
|
-
|
|
115
|
-
|
|
122
|
+
# location key required not value
|
|
123
|
+
yield @simple_validator.method_exists project.metadata.semver, 'location'
|
|
116
124
|
|
|
117
125
|
end
|
|
118
126
|
|
|
@@ -126,35 +134,36 @@ class SimpleValidator
|
|
|
126
134
|
CANNOT_CONTINUE = '. Cannot continue!'
|
|
127
135
|
IS_MISSING = ' is missing'
|
|
128
136
|
|
|
129
|
-
def method_exists object, method
|
|
137
|
+
def method_exists object, method
|
|
130
138
|
begin
|
|
131
139
|
if !object.respond_to? method
|
|
132
|
-
"#{
|
|
140
|
+
"#{@node_name}\'s method: *#{method}*" + IS_MISSING
|
|
133
141
|
end
|
|
134
142
|
rescue
|
|
135
143
|
nil
|
|
136
144
|
end
|
|
137
145
|
end
|
|
138
146
|
|
|
139
|
-
def method_value_not_nil_or_empty object, method
|
|
147
|
+
def method_value_not_nil_or_empty object, method
|
|
140
148
|
begin
|
|
141
149
|
value = object.send method
|
|
142
|
-
if value
|
|
143
|
-
"#{
|
|
150
|
+
if value.nil? || value.to_s.strip.length == 0
|
|
151
|
+
"#{@node_name}\'s *#{method}* value is empty or" + IS_MISSING
|
|
144
152
|
end
|
|
145
153
|
rescue
|
|
146
154
|
nil
|
|
147
155
|
end
|
|
148
156
|
end
|
|
149
157
|
|
|
150
|
-
def method_value_not_nil object, method
|
|
158
|
+
def method_value_not_nil object, method
|
|
151
159
|
begin
|
|
152
160
|
value = object.send method
|
|
153
|
-
if value
|
|
154
|
-
"#{
|
|
161
|
+
if value.nil?
|
|
162
|
+
"#{@node_name}\'s *#{method}* value" + IS_MISSING
|
|
155
163
|
end
|
|
156
164
|
rescue
|
|
157
165
|
nil
|
|
158
166
|
end
|
|
159
167
|
end
|
|
168
|
+
|
|
160
169
|
end
|
data/lib/proget_api.rb
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
class ProgetApi
|
|
3
|
+
def is_package_published packageName, packageVersion, timeout
|
|
4
|
+
packageLocationUri = "http://nuget2.relayhealth.com/nuget/Carnegie/Packages(Id='#{packageName}',Version='#{packageVersion}')"
|
|
5
|
+
counter = timeout
|
|
6
|
+
i = 0
|
|
7
|
+
found = false;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
while i < counter
|
|
10
|
+
response = Net::HTTP.get_response(URI packageLocationUri)
|
|
11
|
+
xmldoc = Nokogiri::XML response.body
|
|
12
|
+
entry = xmldoc.css "entry id"
|
|
13
|
+
if entry.to_s.include? packageLocationUri
|
|
14
|
+
puts "Found #{packageName}-#{packageVersion}"
|
|
15
|
+
found = true
|
|
16
|
+
break
|
|
17
|
+
end
|
|
18
|
+
sleep 1
|
|
19
|
+
i += 1
|
|
16
20
|
end
|
|
17
|
-
sleep 1
|
|
18
|
-
i += 1
|
|
19
|
-
end
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
puts "Not found #{packageName}-#{packageVersion}"
|
|
23
|
-
end
|
|
22
|
+
puts "Not found #{packageName}-#{packageVersion}" if !found
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
found
|
|
25
|
+
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
# Sample Usage
|
data/lib/rollback.rb
CHANGED
|
@@ -31,7 +31,7 @@ class RollbackUpgrade
|
|
|
31
31
|
def create_rollback_tag
|
|
32
32
|
versioning = SemverVersioning.new
|
|
33
33
|
semver_file = @config_map.metadata.semver.file
|
|
34
|
-
if @config_map.metadata.should_publish_nuget
|
|
34
|
+
if @config_map.metadata.should_publish_nuget && semver_file != nil && semver_file != GlobalConstants::EMPTY
|
|
35
35
|
semver_file.capitalize
|
|
36
36
|
ver_tag = versioning.get_current_version @config_map.metadata.semver.location, semver_file
|
|
37
37
|
return "rollback-#{ver_tag}"
|
|
@@ -50,7 +50,7 @@ class RollbackUpgrade
|
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
# check hashes for version upgrade commit message
|
|
53
|
-
if !commit_hashes.any?{ |c_hash| GithubApi.ShowCommitInfoLocal(c_hash).include?
|
|
53
|
+
if !commit_hashes.any?{ |c_hash| GithubApi.ShowCommitInfoLocal(c_hash).include? Upgrade::VERSION_UPGRADE_COMMIT }
|
|
54
54
|
puts `No version upgrade commit detected to roll back, aborting rollback.`
|
|
55
55
|
return false
|
|
56
56
|
end
|
data/lib/rollbackall.rb
CHANGED
|
@@ -88,14 +88,14 @@ class RollbackAll
|
|
|
88
88
|
puts 'IsRollback not set in manifest, aborting rollback.'
|
|
89
89
|
return false
|
|
90
90
|
end
|
|
91
|
-
upgrader =
|
|
91
|
+
upgrader = Upgrade.new versions_to_update, rollback
|
|
92
92
|
|
|
93
93
|
# if changes exist, cycle through dependency tree and kick off upgrades
|
|
94
94
|
puts GlobalConstants::UPGRADE_PROGRESS + 'Navigating projects...'
|
|
95
95
|
dep_tree = DependencyTree.new(@manifest['projects'])
|
|
96
96
|
dep_tree.traverse do |node|
|
|
97
97
|
|
|
98
|
-
if node.metadata.should_upgrade
|
|
98
|
+
if node.metadata.should_upgrade
|
|
99
99
|
puts "#{GlobalConstants::UPGRADE_PROGRESS} Processing project #{node.project_name}..."
|
|
100
100
|
|
|
101
101
|
# validate project node
|
data/lib/upgrade.rb
CHANGED
|
@@ -4,7 +4,7 @@ Processes upgrade for a C# code repositoryy
|
|
|
4
4
|
|
|
5
5
|
=end
|
|
6
6
|
|
|
7
|
-
class
|
|
7
|
+
class Upgrade
|
|
8
8
|
|
|
9
9
|
UPGRADE_BRANCH = 'upgrade'
|
|
10
10
|
BACKUP_BRANCH = 'upgradeBackupDoNotDelete'
|
|
@@ -33,7 +33,7 @@ class UpgradePackages
|
|
|
33
33
|
def create_upgrade_tag
|
|
34
34
|
versioning = SemverVersioning.new
|
|
35
35
|
semver_file = @config_map.metadata.semver.file
|
|
36
|
-
if @config_map.metadata.should_publish_nuget
|
|
36
|
+
if @config_map.metadata.should_publish_nuget && semver_file != nil && semver_file != GlobalConstants::EMPTY
|
|
37
37
|
semver_file.capitalize
|
|
38
38
|
ver_tag = versioning.get_current_version @config_map.metadata.semver.location, semver_file
|
|
39
39
|
return "upgrade-#{ver_tag}"
|
|
@@ -95,7 +95,7 @@ class UpgradePackages
|
|
|
95
95
|
# QUESTION: Should this method increment semver even if there is no nuget published?
|
|
96
96
|
puts GlobalConstants::UPGRADE_PROGRESS + 'Upgrading semver...'
|
|
97
97
|
semver_inc_done = increment_semver_if_publish is_local_run
|
|
98
|
-
nuget_targets << Dir.pwd + '/build_artifacts' if @config_map.metadata.should_publish_nuget
|
|
98
|
+
nuget_targets << Dir.pwd + '/build_artifacts' if @config_map.metadata.should_publish_nuget
|
|
99
99
|
|
|
100
100
|
# Tag commit
|
|
101
101
|
recent_commit_hash = GithubApi.GetRecentCommitHash(@branch)
|
|
@@ -116,7 +116,8 @@ class UpgradePackages
|
|
|
116
116
|
|
|
117
117
|
# update version map with nuget versions after build success
|
|
118
118
|
if semver_inc_done
|
|
119
|
-
update_version_map
|
|
119
|
+
nuget_versions = update_version_map '/build_artifacts/*.nupkg'
|
|
120
|
+
@versions.merge! nuget_versions
|
|
120
121
|
puts GlobalConstants::UPGRADE_PROGRESS + 'Semver upgraded. Version map updated.'
|
|
121
122
|
end
|
|
122
123
|
|
|
@@ -290,8 +291,7 @@ class UpgradePackages
|
|
|
290
291
|
auto_update_semver @config_map.project_name, @config_map.metadata.semver.location, @config_map.metadata.semver.file, @config_map.metadata.semver.dimension
|
|
291
292
|
return true
|
|
292
293
|
else
|
|
293
|
-
|
|
294
|
-
if should_publish_nuget.eql? 'y'
|
|
294
|
+
if @config_map.metadata.should_publish_nuget
|
|
295
295
|
semver_file = @config_map.metadata.semver.file
|
|
296
296
|
if (semver_file != nil && semver_file != GlobalConstants::EMPTY)
|
|
297
297
|
semver_file.capitalize
|
|
@@ -306,8 +306,8 @@ class UpgradePackages
|
|
|
306
306
|
false
|
|
307
307
|
end
|
|
308
308
|
|
|
309
|
-
def update_version_map
|
|
310
|
-
path = File.join(Dir.pwd,
|
|
309
|
+
def update_version_map path
|
|
310
|
+
path = File.join(Dir.pwd, path)
|
|
311
311
|
nugets = Dir.glob path
|
|
312
312
|
nugets.each { |nuget|
|
|
313
313
|
full_name = File.basename nuget
|
|
@@ -316,7 +316,8 @@ class UpgradePackages
|
|
|
316
316
|
dot_pos = full_name.index GlobalConstants::DOT
|
|
317
317
|
nuget_name = full_name[0..dot_pos-1]
|
|
318
318
|
nuget_version = full_name[dot_pos+1..full_name.length]
|
|
319
|
-
|
|
319
|
+
versions[nuget_name] = nuget_version
|
|
320
320
|
}
|
|
321
|
+
versions
|
|
321
322
|
end
|
|
322
323
|
end
|
data/lib/upgradeall.rb
CHANGED
|
@@ -39,7 +39,7 @@ class UpgradeAll
|
|
|
39
39
|
Dir.chdir GlobalConstants::PARENTDIR
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
def Do input_validator, is_local_run=false
|
|
42
|
+
def Do input_validator, is_local_run = false
|
|
43
43
|
|
|
44
44
|
GithubApi.SetPushDefaultSimple
|
|
45
45
|
|
|
@@ -70,8 +70,8 @@ class UpgradeAll
|
|
|
70
70
|
end
|
|
71
71
|
raise StandardError, validation_error_message(validation_errors) if validation_errors.length > 0
|
|
72
72
|
|
|
73
|
-
nuget_targets =
|
|
74
|
-
upgrader =
|
|
73
|
+
nuget_targets = nuget_targets_in_env_if_any
|
|
74
|
+
upgrader = Upgrade.new versions_to_update
|
|
75
75
|
|
|
76
76
|
# if changes exist, cycle through dependency tree and kick off upgrades
|
|
77
77
|
puts GlobalConstants::UPGRADE_PROGRESS + 'Navigating projects...'
|
|
@@ -98,14 +98,14 @@ class UpgradeAll
|
|
|
98
98
|
node_name = node.project_name
|
|
99
99
|
node_name = GlobalConstants::ROOT if (node.respond_to?('is_root') && node.is_root == 'true')
|
|
100
100
|
|
|
101
|
-
# project status
|
|
101
|
+
# set project status in json
|
|
102
102
|
if upgrade_status
|
|
103
103
|
puts GlobalConstants::UPGRADE_PROGRESS + " Upgrade of #{node.project_name} succeeded"
|
|
104
104
|
@manifest['projects'][node_name]['metadata']['status'] = GlobalConstants::SUCCESS
|
|
105
105
|
Dir.chdir GlobalConstants::PARENTDIR
|
|
106
106
|
|
|
107
107
|
# if publishing nuget package, wait for a minute for publish to finish
|
|
108
|
-
waitfor node.metadata.build_wait_time_in_secs if node.metadata.should_publish_nuget
|
|
108
|
+
waitfor node.metadata.build_wait_time_in_secs if node.metadata.should_publish_nuget
|
|
109
109
|
else
|
|
110
110
|
# either cycle was unterrupted, a step in upgrade failed or full cycle successfully completed
|
|
111
111
|
# save the version map and manifest
|
|
@@ -125,8 +125,15 @@ class UpgradeAll
|
|
|
125
125
|
true
|
|
126
126
|
end
|
|
127
127
|
|
|
128
|
+
def nuget_targets_in_env_if_any
|
|
129
|
+
existing_targets = ENV['nuget_targets'] if !ENV['nuget_targets'] != nil || ENV['nuget_targets'] != GlobalConstants::EMPTY
|
|
130
|
+
target_list = []
|
|
131
|
+
target_list = existing_targets.split(',') if existing_targets != nil
|
|
132
|
+
target_list
|
|
133
|
+
end
|
|
134
|
+
|
|
128
135
|
def check_should_upgrade node
|
|
129
|
-
status = node.metadata.should_upgrade
|
|
136
|
+
status = node.metadata.should_upgrade
|
|
130
137
|
puts GlobalConstants::UPGRADE_PROGRESS + " Skipping upgrade for project #{node.project_name}..." if !status
|
|
131
138
|
status
|
|
132
139
|
end
|
data/lib/version_map.rb
CHANGED
|
@@ -50,7 +50,7 @@ class VersionMap
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
if Dir.exist?
|
|
53
|
+
if Dir.exist? 'versioning'
|
|
54
54
|
update_platform_multiple_semver_package_versions versions
|
|
55
55
|
else
|
|
56
56
|
update_platform_single_semver_package_versions versions
|
|
@@ -105,13 +105,9 @@ class VersionMap
|
|
|
105
105
|
|
|
106
106
|
def get_semver semver
|
|
107
107
|
ver = load_semver File.join('versioning', semver)
|
|
108
|
-
|
|
108
|
+
# remove 'v' at start of string which isn't expected for version spec in .package and .csproj files
|
|
109
|
+
v = ver.to_s.sub 'v', ''
|
|
109
110
|
v
|
|
110
111
|
end
|
|
111
112
|
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
#puts "test"
|
|
115
|
-
#vm = VersionMap.new
|
|
116
|
-
#versions = vm.version_map "http://", "master"
|
|
117
|
-
#version_map("http://ndhaxpgit01.mckesson.com/Carnegie/RelayHealth.DataPlatform.git", "master")
|
|
113
|
+
end
|