mirror of https://github.com/jenkinsci/jenkins.git
				
				
				
			
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| #!/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
 |