forked from jenkinsci/jenkins
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpush-m2-repo.rb
81 lines (72 loc) · 2.61 KB
/
push-m2-repo.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/ruby
# The MIT License
#
# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
ver=ARGV.shift
require 'ftools'
class VersionNumber
def initialize(str)
@tokens = str.split(/\./)
end
def inc
@tokens[-1] = (@tokens[-1].to_i()+1).to_s()
end
def dec
@tokens[-1] = (@tokens[-1].to_i()-1).to_s()
end
def to_s
@tokens.join(".")
end
end
print "Releasing master POM for plugins"
prev=VersionNumber.new(ver)
prev.dec()
def updatePom(src,prev,ver)
open(src) do |i|
open(src+".tmp","w") do |o|
i.each do |line|
line = line.gsub("<version>#{prev}</version>","<version>#{ver}</version>")
o.puts line
end
end
end
File.move(src+".tmp",src)
end
Dir.chdir("../plugins") do
system "svn update"
# update master POM
updatePom("pom.xml",prev,ver)
# --- stop updating plugin POMs aggressively. Now that plugins/pom.xml is synced
# to central, we no longer have a real incentive to do this, and we can let
# plugin authors choose the version of their choice.
## update parent reference in module POM
#Dir.glob("*") do |name|
# next unless File.directory?(name)
# print "#{name}\n"
# next unless File.exists?(name+"/pom.xml")
# updatePom(name+"/pom.xml",prev,ver)
#end
## in case anyone gets out of sync, this will bring them back to the current version,
## except that this only works for children nominated in the <module> section.
#system "mvn -N versions:update-child-modules" or fail
system "svn commit -m 'bumping up POM version'" or fail
system "mvn -N deploy" or fail
end