azdeploy 1.0.30 → 1.0.31
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/azdeploy.gemspec +2 -2
- data/lib/azdeploy.rb +6 -4
- data/lib/install.rb +142 -143
- data/lib/semantic_versioning.rb +280 -0
- data/lib/transform.rb +389 -389
- data/lib/update.rb +83 -83
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 674516fefe82d0733e648702a2ec69fa968a7b8e
|
4
|
+
data.tar.gz: 30a2c43e9661a78c24ab4162ce1594ed05e50d4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e78e962ec74558b18003e56e1f10db172fc88b25e06f77214126d9765c698f02e3372142285f31bbf291ae836e7b669998ef00db75529fa6f993989c0367af4e
|
7
|
+
data.tar.gz: 1fc74904ea5c665d5925916554803ad89e4035685a4c486625f1081e07988d21be4a33b8296104de957f9e81589fc2210b3878037abb099bfd398193539c9a9b
|
data/azdeploy.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'azdeploy'
|
3
|
-
s.version = '1.0.
|
4
|
-
s.date = '2015-
|
3
|
+
s.version = '1.0.31'
|
4
|
+
s.date = '2015-12-16'
|
5
5
|
s.summary = 'Setup and scripting support for .Net project builds'
|
6
6
|
s.description = 'Azure Deployment Gem. Provides easy setup and deployment scripting support for .Net project builds'
|
7
7
|
s.authors = ['Suresh Batta']
|
data/lib/azdeploy.rb
CHANGED
@@ -2,14 +2,15 @@ require_relative 'install.rb'
|
|
2
2
|
require_relative 'transform.rb'
|
3
3
|
require_relative 'build.rb'
|
4
4
|
require_relative 'dependency.rb'
|
5
|
+
require_relative 'semantic_versioning.rb'
|
5
6
|
|
6
7
|
# installation
|
7
8
|
installers = [
|
8
|
-
|
9
|
+
'ruby', 'devkit', 'doxygen', 'gems'
|
9
10
|
]
|
10
11
|
|
11
|
-
installers.each { |method|
|
12
|
-
|
12
|
+
installers.each { |method|
|
13
|
+
exit if !send("check_#{method}")
|
13
14
|
}
|
14
15
|
|
15
16
|
require 'rubygems'
|
@@ -19,4 +20,5 @@ require 'azure'
|
|
19
20
|
# includes for rake build
|
20
21
|
include FileTest
|
21
22
|
require 'albacore'
|
22
|
-
require 'semver'
|
23
|
+
require 'semver'
|
24
|
+
require 'net/http'
|
data/lib/install.rb
CHANGED
@@ -1,171 +1,170 @@
|
|
1
|
-
require 'net/http'
|
2
1
|
|
3
2
|
def download_file(sourcePath, filePath, localFileLocation)
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
3
|
+
Net::HTTP.start(sourcePath) do |http|
|
4
|
+
resp = http.get(filePath)
|
5
|
+
f = open(localFileLocation, 'wb')
|
6
|
+
begin
|
7
|
+
requestPath = "http://#{sourcePath}#{filePath}"
|
8
|
+
puts "Downloading #{requestPath}..."
|
9
|
+
http.request_get(requestPath) do |resp|
|
10
|
+
resp.read_body do |segment|
|
11
|
+
f.write(segment)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
rescue
|
15
|
+
puts $!
|
16
|
+
return false
|
17
|
+
ensure
|
18
|
+
f.close()
|
19
|
+
end
|
20
|
+
end
|
21
|
+
return true
|
23
22
|
end
|
24
23
|
|
25
24
|
def install_file(cmd, versionedExeFile)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
25
|
+
begin
|
26
|
+
installerOutput = `#{cmd}`
|
27
|
+
puts installerOutput
|
28
|
+
rescue
|
29
|
+
puts $!
|
30
|
+
return false
|
31
|
+
ensure
|
32
|
+
puts 'Cleaning up...'
|
33
|
+
cmd = "#{versionedExeFile}"
|
34
|
+
installerOutput = `del #{cmd}`
|
35
|
+
puts installerOutput
|
36
|
+
end
|
37
|
+
return true
|
39
38
|
end
|
40
39
|
|
41
40
|
def gem_exists(name, version)
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
41
|
+
begin
|
42
|
+
gem name, version
|
43
|
+
rescue Gem::LoadError
|
44
|
+
puts "failed to load gem #{name} -v #{version}"
|
45
|
+
Gem.clear_paths
|
46
|
+
return false
|
47
|
+
end
|
48
|
+
return true
|
50
49
|
end
|
51
50
|
|
52
51
|
$version_map = {
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
52
|
+
'1.9.3-p551' => {
|
53
|
+
:devkit => 'DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe',
|
54
|
+
:gems => {
|
55
|
+
'albacore' => '0.3.5',
|
56
|
+
'semver2' => '3.3.3',
|
57
|
+
'nokogiri' => '1.6.4.1',
|
58
|
+
'zip' => '2.0.2',
|
59
|
+
'azure' => '0.6.4'
|
60
|
+
},
|
61
|
+
},
|
62
|
+
'2.0.0-p481' => {
|
63
|
+
:devkit => 'DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe',
|
64
|
+
:gems => {
|
65
|
+
'albacore' => '0.3.6',
|
66
|
+
'semver2' => '3.3.3',
|
67
|
+
'nokogiri' => '1.6.4.1',
|
68
|
+
'azure' => '0.6.4'
|
69
|
+
}
|
70
|
+
}
|
72
71
|
}
|
73
72
|
$selected_version = {}
|
74
73
|
|
75
74
|
# Ruby version check
|
76
75
|
def check_ruby
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
76
|
+
puts 'Checking ruby version...'
|
77
|
+
# check if expected ruby version exists. If not download and install ruby
|
78
|
+
rubyVersion = "#{RUBY_VERSION}"
|
79
|
+
localVersion = "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
|
80
|
+
expectedVersion1 = '1.9.3-p551'
|
81
|
+
expectedVersion2 = '2.0.0-p481'
|
82
|
+
if (!rubyVersion.nil? && (localVersion != expectedVersion1 && localVersion != expectedVersion2))
|
83
|
+
puts "Uninstall incompatible version of ruby: #{localVersion} and install version: #{expectedVersion1} or #{expectedVersion2}. Then Restart rake. Goto http://rubyinstaller.org/downloads/"
|
84
|
+
return false
|
85
|
+
end
|
86
|
+
|
87
|
+
$selected_version = $version_map[localVersion]
|
88
|
+
puts 'Ruby ok'
|
89
|
+
|
90
|
+
return true
|
92
91
|
end
|
93
92
|
|
94
93
|
### devkit version check
|
95
94
|
def check_devkit
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
95
|
+
# check if devkit exists
|
96
|
+
puts 'Checking devkit version...'
|
97
|
+
rubyPath = `where.exe ruby.exe`
|
98
|
+
rubyPath['bin\ruby.exe'] = 'devkit'
|
99
|
+
rubyPath = rubyPath.sub("\n", '') #doublequotes required for Line break, gotcha
|
100
|
+
if (!File.directory?(rubyPath))
|
101
|
+
puts 'devkit not found'
|
102
|
+
# if not download, install and setup devkit
|
103
|
+
puts 'Downloading devkit...'
|
104
|
+
|
105
|
+
sourcePath = 'cdn.rubyinstaller.org'
|
106
|
+
versionedExeFile = $selected_version[:devkit]
|
107
|
+
filePath = "/archives/devkits/#{versionedExeFile}?direct"
|
108
|
+
return false if !download_file(sourcePath, filePath, versionedExeFile)
|
109
|
+
|
110
|
+
puts 'Devkit installation in progress...'
|
111
|
+
cmd = "#{versionedExeFile} -y -o\"#{rubyPath}\"" #no space after -o, gotcha
|
112
|
+
puts cmd
|
113
|
+
return false if !install_file(cmd, versionedExeFile)
|
114
|
+
|
115
|
+
puts 'Setting up devkit...'
|
116
|
+
Dir.chdir "#{rubyPath}"
|
117
|
+
cmd = 'ruby dk.rb init'
|
118
|
+
cmdoutput = `#{cmd}`
|
119
|
+
puts cmdoutput
|
120
|
+
if !cmdoutput.to_s.include?('Initialization complete!')
|
121
|
+
puts 'Error: could not initialize devkit.'
|
122
|
+
return false
|
123
|
+
end
|
124
|
+
|
125
|
+
cmd = 'ruby dk.rb review'
|
126
|
+
cmdoutput = `#{cmd}`
|
127
|
+
puts cmdoutput
|
128
|
+
if !cmdoutput.to_s.include?('DevKit functionality will be injected')
|
129
|
+
puts 'Error: devkit review failed'
|
130
|
+
return false
|
131
|
+
end
|
132
|
+
|
133
|
+
cmd = 'ruby dk.rb install'
|
134
|
+
cmdoutput = `#{cmd}`
|
135
|
+
puts cmdoutput
|
136
|
+
puts 'Restart console since environment variables are now updated'
|
137
|
+
|
138
|
+
return false
|
139
|
+
end
|
140
|
+
|
141
|
+
puts 'devkit ok'
|
142
|
+
return true
|
144
143
|
end
|
145
144
|
|
146
145
|
# doxygen check
|
147
146
|
def check_doxygen
|
148
|
-
|
149
|
-
|
147
|
+
# download doxygen
|
148
|
+
return true
|
150
149
|
end
|
151
150
|
|
152
151
|
# check and install required gems
|
153
152
|
def check_gems
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
end
|
153
|
+
puts 'Checking required gems...'
|
154
|
+
$selected_version[:gems].each {|key, value|
|
155
|
+
if !gem_exists(key, "=#{value}")
|
156
|
+
begin
|
157
|
+
puts "Installing missing gem: #{key}"
|
158
|
+
cmd = "gem install #{key} -v #{value}"
|
159
|
+
cmdoutput = `#{cmd}`
|
160
|
+
puts cmdoutput
|
161
|
+
rescue
|
162
|
+
puts 'gem install failed'
|
163
|
+
puts $!
|
164
|
+
return false # don't continue if even one gem install fails
|
165
|
+
end
|
166
|
+
end
|
167
|
+
}
|
168
|
+
# all gems installed
|
169
|
+
return true
|
170
|
+
end
|
@@ -0,0 +1,280 @@
|
|
1
|
+
class SemverVersioning
|
2
|
+
|
3
|
+
# url template of file to check for version info with repo, branch and file path to replace
|
4
|
+
URLTEMPLATE ||= "%s/raw/%s/%s"
|
5
|
+
|
6
|
+
def open url
|
7
|
+
Net::HTTP.get(URI.parse url)
|
8
|
+
end
|
9
|
+
|
10
|
+
def display_local_changes_to_user
|
11
|
+
git_status = `git status -s`
|
12
|
+
if (git_status != nil || git_status != GlobalConstants::EMPTY)
|
13
|
+
puts '********** Local semver/s updated. Please commit the change.'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def fetch_updated_semver
|
18
|
+
|
19
|
+
updated_semver = get_update_semver_file_with_versions
|
20
|
+
|
21
|
+
#for local run user did not increment any semver
|
22
|
+
if updated_semver[3] == 0
|
23
|
+
puts '*********** No semver incremented detected. ***********'
|
24
|
+
return nil
|
25
|
+
end
|
26
|
+
|
27
|
+
version_remote = updated_semver[1].split('.')
|
28
|
+
version_local = updated_semver[2].split('.')
|
29
|
+
|
30
|
+
incremented = is_semver_incremented version_remote, version_local
|
31
|
+
|
32
|
+
[updated_semver[0].gsub("#{VERSIONING}/", ''), incremented]
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_update_semver_file_with_versions
|
36
|
+
count = 0
|
37
|
+
semver_file = ''
|
38
|
+
version_remote = ''
|
39
|
+
version_local = ''
|
40
|
+
|
41
|
+
semvers = get_file_list VERSIONING, 'semver'
|
42
|
+
if(semvers.empty?)
|
43
|
+
raise "************Error - no semver files found at #{VERSIONING}********"
|
44
|
+
end
|
45
|
+
|
46
|
+
semvers.each { |semver|
|
47
|
+
v1 = get_repo_version semver
|
48
|
+
v2 = get_current_version VERSIONING, semver.gsub("#{VERSIONING}/", '')
|
49
|
+
if (!same_versions(v1, v2))
|
50
|
+
puts "#{semver} version changed"
|
51
|
+
semver_file = semver
|
52
|
+
version_remote = v1
|
53
|
+
version_local = v2
|
54
|
+
count = count + 1
|
55
|
+
end
|
56
|
+
}
|
57
|
+
if count > 1
|
58
|
+
raise '*********** Error - Version increment is expected in a single semver file and can be only one of major|minor|patch ************'
|
59
|
+
return
|
60
|
+
end
|
61
|
+
|
62
|
+
[semver_file, version_remote, version_local, count]
|
63
|
+
end
|
64
|
+
|
65
|
+
def is_semver_incremented version_remote, version_local
|
66
|
+
is_incremented = [version_local[0].to_i - version_remote[0].to_i > 0, version_local[1].to_i - version_remote[1].to_i > 0, version_local[2].to_i - version_remote[2].to_i > 0]
|
67
|
+
|
68
|
+
if is_incremented[0]
|
69
|
+
if (version_local[1] != 0 || version_local[2] != 0)
|
70
|
+
raise 'Error - major version is incremented. Minor and Patch should be 0. Cannot continue build. Exiting....'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
if is_incremented[1]
|
75
|
+
if is_incremented[0]
|
76
|
+
raise 'Error - cannot increment both major and minor version. . Exiting....'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
if is_incremented[2]
|
81
|
+
if(is_incremented[0] || is_incremented[1])
|
82
|
+
raise 'Error - cannot increment major, minor and patch together. . Exiting....'
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
if is_incremented[0]
|
87
|
+
'major'
|
88
|
+
elsif is_incremented[1]
|
89
|
+
'minor'
|
90
|
+
elsif is_incremented[2]
|
91
|
+
'patch'
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def get_branch_name
|
96
|
+
current_branch = ENV['GIT_BRANCH_NAME']
|
97
|
+
if current_branch.nil?
|
98
|
+
raise '********GIT_BRANCH_NAME environment variable required for local rake run. Cannot continue with build. Exiting..............********'
|
99
|
+
else
|
100
|
+
current_branch
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def get_remote_name
|
105
|
+
remote_name = ENV['GIT_REMOTE_NAME']
|
106
|
+
if remote_name.nil?
|
107
|
+
raise '********GIT_REMOTE_NAME environment variable required for local rake run. Cannot continue with build. Exiting..............********'
|
108
|
+
else
|
109
|
+
@remote = `git remote -v`.split("\n")
|
110
|
+
@remote.each { |val|
|
111
|
+
if val =~ /#{remote_name}/
|
112
|
+
return val.split(" ")[1].sub('.git', '')
|
113
|
+
end
|
114
|
+
}
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def get_repo_version semver
|
119
|
+
remote_name = get_remote_name
|
120
|
+
branch_name = get_branch_name
|
121
|
+
url = URLTEMPLATE % [remote_name, branch_name, semver]
|
122
|
+
page_content = open(url)
|
123
|
+
repo_version = get_semver_version(page_content)
|
124
|
+
repo_version
|
125
|
+
end
|
126
|
+
|
127
|
+
def get_current_version path, semver
|
128
|
+
location = File.join path, semver
|
129
|
+
content = File.read(location)
|
130
|
+
current_version = get_semver_version(content)
|
131
|
+
current_version
|
132
|
+
end
|
133
|
+
|
134
|
+
def get_semver_version(content)
|
135
|
+
s = content.split("\n")
|
136
|
+
val = ''
|
137
|
+
s.each{ |i|
|
138
|
+
if (i.start_with?(':'))
|
139
|
+
x = i.split(': ')[1].strip
|
140
|
+
x.gsub!("'", '')
|
141
|
+
if (x.length != 0)
|
142
|
+
val = val + x.to_s + '.'
|
143
|
+
end
|
144
|
+
end
|
145
|
+
}
|
146
|
+
val.chomp('.')
|
147
|
+
end
|
148
|
+
|
149
|
+
def same_versions version1, version2
|
150
|
+
version1 == version2
|
151
|
+
end
|
152
|
+
|
153
|
+
# Method to be used from the upgrade project, to update single or multiple semvers on team city
|
154
|
+
def auto_update_semver project_name, semver_location, semver_file, semver_dimension
|
155
|
+
Dir.chdir project_name if File.basename(Dir.pwd) != project_name
|
156
|
+
if(semver_file.nil? || semver_file.strip == '' || semver_file == '.semver')
|
157
|
+
increment_version '.semver', semver_dimension
|
158
|
+
else
|
159
|
+
increment_version File.join(semver_location, semver_file), semver_dimension
|
160
|
+
update_dependent_semvers project_name, semver_location, semver_file, semver_dimension
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
# Method invoked to update multiple semvers locally. This will not update single semver. That has to be done manually
|
165
|
+
def auto_update_local_semver
|
166
|
+
if(!Dir.exist?(VERSIONING) || File.exist?('.semver'))
|
167
|
+
raise 'Error - local upgrade process only applies to projects with multiple semvers. If you have one semver at root level, please update it manually if needed. Do not invoke auto_update_local_semver task.'
|
168
|
+
end
|
169
|
+
updated_semver_with_version_state = fetch_updated_semver
|
170
|
+
if updated_semver_with_version_state != nil
|
171
|
+
update_dependent_semvers PRODUCT, VERSIONING, updated_semver_with_version_state[0], updated_semver_with_version_state[1]
|
172
|
+
end
|
173
|
+
|
174
|
+
display_local_changes_to_user
|
175
|
+
end
|
176
|
+
|
177
|
+
def update_dependent_semvers product, semver_location, semver_file, dimension
|
178
|
+
semver_project_map = create_semver_project_map product, semver_location
|
179
|
+
projects_dependencies = get_project_dependencies semver_project_map[semver_file]
|
180
|
+
semver_files = get_project_dependencies_semver_files projects_dependencies, semver_project_map
|
181
|
+
semver_files.each { |semver|
|
182
|
+
increment_version File.join(semver_location, semver), dimension
|
183
|
+
}
|
184
|
+
end
|
185
|
+
|
186
|
+
def create_semver_project_map product, semver_location
|
187
|
+
semver_project_map = Hash.new
|
188
|
+
|
189
|
+
rake_list = get_file_list semver_location, 'semver'
|
190
|
+
rake_list.each{ |rakefile|
|
191
|
+
rake = rakefile.gsub "#{semver_location}/", ''
|
192
|
+
project_name = rake.gsub '.semver', ''
|
193
|
+
semver_project_map[rake] = "#{product}.#{project_name}.csproj"
|
194
|
+
}
|
195
|
+
semver_project_map
|
196
|
+
end
|
197
|
+
|
198
|
+
# Increment the major, minor, or patch of the .semver file.
|
199
|
+
def increment_version semver_file, dimension
|
200
|
+
if dimension.nil?
|
201
|
+
raise 'The parameter dimension is required to be one of : major | minor | patch'
|
202
|
+
end
|
203
|
+
semver = load_semver semver_file
|
204
|
+
|
205
|
+
case dimension
|
206
|
+
when 'major'
|
207
|
+
semver.major += 1
|
208
|
+
semver.minor = 0
|
209
|
+
semver.patch = 0
|
210
|
+
when 'minor'
|
211
|
+
semver.minor += 1
|
212
|
+
semver.patch = 0
|
213
|
+
when 'patch'
|
214
|
+
semver.patch += 1
|
215
|
+
else
|
216
|
+
raise "The parameter #{dimension} is invalid: major | minor | patch"
|
217
|
+
end
|
218
|
+
|
219
|
+
hash = "---\n:major: %s\n:minor: %s\n:patch: %s\n:special: '%s'\n:metadata: '%s'"
|
220
|
+
value = hash % [semver.major, semver.minor, semver.patch, semver.special, semver.metadata]
|
221
|
+
File.write semver_file, value
|
222
|
+
end
|
223
|
+
|
224
|
+
#load a sepcific semver (rather than generic .semver file
|
225
|
+
def load_semver path
|
226
|
+
v = SemVer.new
|
227
|
+
v.load path
|
228
|
+
v
|
229
|
+
end
|
230
|
+
|
231
|
+
#get list of semver files for given project list
|
232
|
+
def get_project_dependencies_semver_files projects_dependencies, semver_project_map
|
233
|
+
project_semver_map = semver_project_map.invert
|
234
|
+
@values = Array.new
|
235
|
+
projects_dependencies.each { |dependency|
|
236
|
+
if semver_project_map.value?(dependency)
|
237
|
+
@values << project_semver_map[dependency]
|
238
|
+
end
|
239
|
+
}
|
240
|
+
@values
|
241
|
+
end
|
242
|
+
|
243
|
+
|
244
|
+
#Find a given csproj reference in other projects in the solution
|
245
|
+
def get_project_dependencies csproj
|
246
|
+
proj_files = Dir.glob '**/*.csproj'
|
247
|
+
@unique_list = Array.new
|
248
|
+
proj_files.each{ |file|
|
249
|
+
doc = Nokogiri::XML File.read file
|
250
|
+
nodes = doc.search 'ProjectReference'
|
251
|
+
nodes.each { |node|
|
252
|
+
ref_val = node['Include']
|
253
|
+
id = ref_val.split('\\')[2]
|
254
|
+
if id.eql? csproj
|
255
|
+
@unique_list << file.split('/')[2]
|
256
|
+
end
|
257
|
+
}
|
258
|
+
}
|
259
|
+
@unique_list.uniq
|
260
|
+
end
|
261
|
+
|
262
|
+
def get_file_list path, extension
|
263
|
+
return Dir.glob("#{path}/*.#{extension}")
|
264
|
+
end
|
265
|
+
|
266
|
+
end
|
267
|
+
|
268
|
+
def auto_update_semver project_name, semver_location, semver_file, semver_dimension
|
269
|
+
versioning = SemverVersioning.new
|
270
|
+
versioning.auto_update_semver project_name, semver_location, semver_file, semver_dimension
|
271
|
+
end
|
272
|
+
|
273
|
+
def auto_update_local_semver
|
274
|
+
versioning = SemverVersioning.new
|
275
|
+
versioning.auto_update_local_semver
|
276
|
+
end
|
277
|
+
|
278
|
+
def is_team_city_run
|
279
|
+
ENV['BUILD_VCS_NUMBER'] != nil
|
280
|
+
end
|