aboutsummaryrefslogtreecommitdiffstats
path: root/publish.gradle
blob: 4e4fecb189d9b87d77be432efe21e85cf45f483c (plain)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
apply plugin: 'maven'
apply plugin: 'maven-publish'

task sourceJar(type: Jar, dependsOn: classes) {
  classifier = 'sources'
  from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) { 
  classifier = 'javadoc'
  from javadoc.destinationDir
}

artifacts { 
  archives jar, sourceJar, javadocJar
}

ext.isSnapshot = (VersionNumber.parse(rootProject.version).qualifier == "SNAPSHOT")
ext.isOfficialSdk = (System.env.TRAVIS_JDK_VERSION == officialJdk)
ext.isMainline = (System.env.TRAVIS_PULL_REQUEST == "false")

publishing {
  publications {
    Sshlib(MavenPublication) {
      from components.java
      artifact sourceJar
      artifact javadocJar
      groupId 'org.connectbot'
    }
  }
}

uploadArchives {
  repositories {
    mavenDeployer {
      beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
    }
  }
}

install {
  repositories.mavenInstaller {
    pom {
      project {
        name project.name
        description project.description
        url gitHubUrl
        licenses {
          license {
            name 'Apache License, Version 2.0'
            url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
          }
        }
        developers {
          developer {
            id 'kruton'
            name 'Kenny Root'
            email 'kenny@the-b.org'
          }
        }
        scm {
          connection "${gitHubUrl}.git"
          developerConnection "${gitHubUrl}.git"
          url gitHubUrl
        }
      }
    }
  }
}

//Load data from environment if present to support Travis
['bintrayUser', 'bintrayApiKey'].each{
  if (System.env[it])
    project[it] = System.env[it]
}

//This is only needed if bintrayUpload is done as part of releasing
task updateBintrayVersion << {
  bintray.pkg.version.name = project.version
}
bintrayUpload.dependsOn updateBintrayVersion

bintray {
  user = bintrayUser
  key = bintrayApiKey
  publish = true
  pkg {
    userOrg = 'connectbot'
    repo = 'maven'
    name = project.name

    licenses = ['Apache-2.0']
    configurations = ['archives']

    websiteUrl = gitHubUrl
    vcsUrl = "${gitHubUrl}.git"
  }
}

//Bintray is for official releases
bintrayUpload.onlyIf {
  project.isOfficialSdk && !project.isSnapshot && project.isMainline
}

artifactory {
  contextUrl = 'https://oss.jfrog.org/artifactory'
  publish {
    repository {
      repoKey = 'oss-snapshot-local'
      username = bintrayUser
      password = bintrayApiKey
    }
    defaults {
      publications('Sshlib')
    }
  }
}

//Artifactory is for publishing snapshots
artifactoryPublish.onlyIf {
  project.isOfficialSdk && project.isSnapshot && project.isMainline
}