-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrelease-all.rb
executable file
·45 lines (39 loc) · 1.38 KB
/
release-all.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
#!/usr/bin/env ruby
if ARGV.empty?
puts "utilisation: #{$0} version versionDeveloppementSuivante"
exit
end
def release(projet, version, versionDeveloppementSuivante)
Dir.chdir(projet)
if not system "mvn clean release:prepare -B -Dtag=#{version} -DreleaseVersion=#{version} -DdevelopmentVersion=#{versionDeveloppementSuivante} -DignoreSnapshots=true && mvn release:perform -DignoreSnapshots=true"
exit
end
Dir.chdir("..")
end
def commit_et_push_pom(projet, message)
if not system "git commit pom.xml -m '#{message}' && git push origin master"
exit
end
end
def change_version_parent(projet, versionCourante, versionSuivante)
Dir.chdir(projet)
pom = File.read("pom.xml").sub(versionCourante, versionSuivante)
File.open("pom.xml", 'w') {|f| f.write(pom) }
commit_et_push_pom(projet, "[Releaser] Change parent version to #{versionSuivante}")
Dir.chdir("..")
end
Dir.chdir("..")
version = ARGV[0]
versionDeveloppementCourante = "#{ARGV[0]}-SNAPSHOT"
versionDeveloppementSuivante = ARGV[1]
release("mongolink", version, versionDeveloppementSuivante)
projets = ["mongolink-integrationtests", "mongolink-example"]
projets.each do |projet|
change_version_parent(projet, versionDeveloppementCourante, version)
end
projets.each do |projet|
release(projet, version, versionDeveloppementSuivante)
end
projets.each do |projet|
change_version_parent(projet, version, versionDeveloppementSuivante)
end