mcrt 1.5.0 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mcrt.rb +78 -21
- data/mcrt.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55fd17a5464b4a35d721afcbf9ccb7eaa15d39cd
|
4
|
+
data.tar.gz: 1125e43f1cbc28992487d570a5585e2c9acc92b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3287900e87f879cfb4c77d2af967f769f632398699a4db4f546bafce97967cd5bff5e707eb8fe746e8f5f1901e5f9b393e9c6a2214f632322e677f763fddc4c2
|
7
|
+
data.tar.gz: bd0bf62b519d45fd0db706a6c9a6b91234d3ad3c7e507ca9149b3d48d28cc14b12288aceef4d923a88ea356dbad2a4f6b159e0638b527cd983e5ec9d8594d606
|
data/lib/mcrt.rb
CHANGED
@@ -3,28 +3,85 @@ require 'net/https'
|
|
3
3
|
require 'uri'
|
4
4
|
require 'json'
|
5
5
|
|
6
|
-
class
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
class MavenCentralReleaseTool
|
7
|
+
class << self
|
8
|
+
def define_publish_tasks(options = {})
|
9
|
+
desc 'Publish release on maven central'
|
10
|
+
task 'mcrt:publish' do
|
11
|
+
project = options[:project] || Buildr.projects[0].root_project
|
12
|
+
profile_name = options[:profile_name] || (raise ':profile_name not specified when defining tasks')
|
13
|
+
username = options[:username] || (raise ':username name not specified when defining tasks')
|
14
|
+
password = options[:password] || ENV['MAVEN_CENTRAL_PASSWORD'] || (raise "Unable to locate environment variable with name 'MAVEN_CENTRAL_PASSWORD'")
|
15
|
+
MavenCentralPublishTool.buildr_release(project, profile_name, username, password)
|
16
|
+
end
|
11
17
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
desc 'Publish release to maven central iff current HEAD is a tag'
|
19
|
+
task 'mcrt:publish_if_tagged' do
|
20
|
+
tag = MavenCentralPublishTool.get_head_tag_if_any
|
21
|
+
if tag.nil?
|
22
|
+
puts 'Current HEAD is not a tag. Skipping publish step.'
|
23
|
+
else
|
24
|
+
puts "Current HEAD is a tag: #{tag}"
|
25
|
+
if MavenCentralPublishTool.is_tag_on_candidate_branches?(tag, candidate_branches)
|
26
|
+
task('mcrt:publish').invoke
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_head_tag_if_any
|
33
|
+
version = `git describe --exact-match --tags 2>&1`
|
34
|
+
if 0 == $?.exitstatus && version =~ /^v[0-9]/ && (ENV['TRAVIS_BUILD_ID'].nil? || ENV['TRAVIS_TAG'].to_s != '')
|
35
|
+
version.strip
|
36
|
+
else
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def is_tag_on_branch?(tag, branch)
|
42
|
+
output = `git tag --merged #{branch} 2>&1`
|
43
|
+
tags = output.split
|
44
|
+
tags.include?(tag)
|
45
|
+
end
|
46
|
+
|
47
|
+
def is_tag_on_candidate_branches?(tag, branches)
|
48
|
+
sh 'git fetch origin'
|
49
|
+
branches.each do |branch|
|
50
|
+
if is_tag_on_branch?(tag, branch)
|
51
|
+
puts "Tag #{tag} is on branch: #{branch}"
|
52
|
+
return true
|
53
|
+
elsif is_tag_on_branch?(tag, "origin/#{branch}")
|
54
|
+
puts "Tag #{tag} is on branch: origin/#{branch}"
|
55
|
+
return true
|
56
|
+
else
|
57
|
+
puts "Tag #{tag} is not on branches: #{branch} or origin/#{branch}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
false
|
61
|
+
end
|
62
|
+
|
63
|
+
def buildr_release(project, profile_name, username, password)
|
64
|
+
release_to_url = Buildr.repositories.release_to[:url]
|
65
|
+
release_to_username = Buildr.repositories.release_to[:username]
|
66
|
+
release_to_password = Buildr.repositories.release_to[:password]
|
67
|
+
|
68
|
+
begin
|
69
|
+
Buildr.repositories.release_to[:url] = 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
|
70
|
+
Buildr.repositories.release_to[:username] = username
|
71
|
+
Buildr.repositories.release_to[:password] = password
|
72
|
+
|
73
|
+
project.task(':upload').invoke
|
74
|
+
|
75
|
+
r = MavenCentralPublishTool.new
|
76
|
+
r.username = username
|
77
|
+
r.password = password
|
78
|
+
r.user_agent = "Buildr-#{Buildr::VERSION}"
|
79
|
+
r.release_sole_auto_staging(profile_name)
|
80
|
+
ensure
|
81
|
+
Buildr.repositories.release_to[:url] = release_to_url
|
82
|
+
Buildr.repositories.release_to[:username] = release_to_username
|
83
|
+
Buildr.repositories.release_to[:password] = release_to_password
|
84
|
+
end
|
28
85
|
end
|
29
86
|
end
|
30
87
|
|
data/mcrt.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mcrt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Donald
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Maven Central Release Tool.
|
14
14
|
email: peter@realityforge.org
|