You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.1 KiB
73 lines
2.1 KiB
#!/usr/bin/env ruby |
|
require 'rubygems' |
|
require 'highline/import' |
|
|
|
def run(args) |
|
system(*args) |
|
end |
|
|
|
def deploy_jar(artifact, version, prefix) |
|
pom = "#{artifact}-#{version}.pom" |
|
binary = "#{artifact}-#{version}.jar" |
|
javadoc = "#{artifact}-#{version}-javadoc.jar" |
|
sources = "#{artifact}-#{version}-sources.jar" |
|
|
|
run prefix + ["-DpomFile=#{pom}", "-Dfile=#{binary}"] |
|
run prefix + ["-DpomFile=#{pom}", "-Dfile=#{sources}", |
|
"-Dclassifier=sources"] |
|
run prefix + ["-DpomFile=#{pom}", "-Dfile=#{javadoc}", |
|
"-Dclassifier=javadoc"] |
|
end |
|
|
|
def deploy_parent(version, prefix) |
|
pom = "org.eclipse.jgit-parent-#{version}.pom" |
|
run prefix + ["-DpomFile=#{pom}", "-Dfile=#{pom}"] |
|
end |
|
|
|
def deploy_sh(artifact, version, prefix) |
|
pom = "#{artifact}-#{version}.pom" |
|
sh = "#{artifact}-#{version}.sh" |
|
run prefix + ["-DpomFile=#{pom}", "-Dfile=#{sh}", "-Dpackaging=sh"] |
|
end |
|
|
|
def get_passphrase(prompt="Enter your GPG Passphrase") |
|
ask(prompt) {|q| q.echo = false} |
|
end |
|
|
|
version = ARGV[0].freeze |
|
if version =~ /\A(\d+\.\d+\.\d+)\.(\d{12})-(m\d|rc\d|r)\Z/ |
|
printf "version %s qualifier %s classifier %s\n", $1, $2, $3 |
|
else |
|
printf "invalid version %s\n", version |
|
abort |
|
end |
|
|
|
url = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/' |
|
repositoryId = 'sonatype-nexus-staging' |
|
puts "gpg passphrase ?" |
|
passphrase = get_passphrase() |
|
|
|
group = 'org.eclipse.jgit' |
|
artifacts = [group, |
|
group + '.ant', |
|
group + '.archive', |
|
group + '.gpg.bc', |
|
group + '.http.apache', |
|
group + '.http.server', |
|
group + '.junit', |
|
group + '.junit.http', |
|
group + '.junit.ssh', |
|
group + '.lfs', |
|
group + '.lfs.server', |
|
group + '.pgm', |
|
group + '.ssh.apache', |
|
group + '.ssh.jsch', |
|
group + '.ui'] |
|
|
|
prefix = ["mvn", "gpg:sign-and-deploy-file", "-Dgpg.passphrase=#{passphrase}", |
|
"-Durl=#{url}", "-DrepositoryId=#{repositoryId}"] |
|
deploy_parent(version, prefix) |
|
artifacts.each do |artifact| |
|
deploy_jar(artifact, version, prefix) |
|
end |
|
deploy_sh('org.eclipse.jgit.pgm', version, prefix)
|
|
|