Skip to content

Commit 03f6a2a

Browse files
author
Mofizur Rahman
authored
Merge pull request #203 from opentok/automated_release
modernizing gradle, creating auto-publish action for opentok java sdk
2 parents 70567d1 + 6344b0f commit 03f6a2a

File tree

3 files changed

+107
-43
lines changed

3 files changed

+107
-43
lines changed

.github/workflows/publish.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Publish to Nexus
2+
on:
3+
release:
4+
types: [published]
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout the repo
10+
uses: actions/checkout@v2
11+
with:
12+
ref: ${{ github.event.release.target_commitish }}
13+
- name: Set up Python
14+
uses: actions/setup-python@v2
15+
with:
16+
python-version: 3.8
17+
- name: Install bump2version
18+
run: |
19+
python -m pip install --upgrade pip
20+
git config --global user.email "44278943+NexmoDev@users.noreply.github.com"
21+
git config --global user.name "NexmoDev"
22+
git config --global github.token ${{ secrets.GITHUB_TOKEN }}
23+
pip install bump2version
24+
- name: Bump Version
25+
run: bump2version --new-version ${{ github.event.release.tag_name }} patch && git tag ${{ github.event.release.tag_name }} -f && git push && git push --tags origin --force
26+
- name: Setup Java
27+
uses: actions/setup-java@v1
28+
with:
29+
java-version: 8
30+
- name: Grant execute permission for gradlew
31+
run: chmod +x gradlew
32+
- name: Cache Gradle packages
33+
uses: actions/cache@v2
34+
with:
35+
path: ~/.gradle/caches
36+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
37+
restore-keys: ${{ runner.os }}-gradle
38+
- name: publish with gradle
39+
env:
40+
signingKey: ${{secrets.SIGNING_KEY}}
41+
signingPassword: ${{secrets.SIGNING_PASSWORD}}
42+
OSS_USERNAME: ${{secrets.OSS_USERNAME}}
43+
OSS_PASSWORD: ${{secrets.OSS_PASSWORD}}
44+
run: OSS_USERNAME=$OSS_USERNAME OSS_PASSWORD=$OSS_PASSWORD signingKey=$signingKey signingPassword=$signingPassword gradle publish --info

build.gradle

Lines changed: 60 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ apply plugin: 'idea'
99
apply plugin: 'eclipse'
1010
apply plugin: 'license'
1111
apply plugin: 'jacoco'
12+
apply plugin: 'maven-publish'
1213

1314
group = 'com.tokbox'
1415
archivesBaseName = 'opentok-server-sdk'
1516
version = '4.6.0'
1617

1718
task javadocJar(type: Jar) {
18-
classifier = 'javadoc'
19+
archiveClassifier.set("javadoc")
1920
from javadoc
2021
}
2122
javadoc {
@@ -36,7 +37,7 @@ jacocoTestReport {
3637
}
3738

3839
task sourcesJar(type: Jar) {
39-
classifier = 'sources'
40+
archiveClassifier.set("sources")
4041
from sourceSets.main.allSource
4142
}
4243

@@ -68,62 +69,80 @@ artifacts {
6869
}
6970

7071
ext.isReleaseVersion = hasProperty('isReleaseVersion') ? isReleaseVersion : false
71-
signing {
72-
required { isReleaseVersion && gradle.taskGraph.hasTask("uploadArchives") }
73-
sign configurations.archives
74-
}
7572

7673
ext.ossrhUsername = hasProperty('ossrhUsername') ? ossrhUsername : 'dummyuser'
7774
ext.ossrhPassword = hasProperty('ossrhPassword') ? ossrhPassword : 'dummypass'
78-
uploadArchives {
79-
repositories {
80-
mavenDeployer {
81-
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
82-
83-
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2") {
84-
authentication(userName: ossrhUsername, password: ossrhPassword)
85-
}
86-
87-
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots") {
88-
authentication(userName: ossrhUsername, password: ossrhPassword)
89-
}
90-
91-
pom.project {
92-
name 'OpenTok Java SDK'
93-
packaging 'jar'
94-
description 'The OpenTok Java SDK lets you generate sessions and tokens for OpenTok applications. This version of the SDK also includes support for working with OpenTok 2.0 archives.'
95-
url 'http://www.tokbox.com/opentok'
96-
97-
scm {
98-
connection 'scm:git:https://github.com/opentok/Opentok-Java-SDK.git'
99-
developerConnection 'scm:git:https://github.com/opentok/Opentok-Java-SDK.git'
100-
url 'opentok.github.io/opentok-java-sdk'
101-
}
10275

76+
publishing {
77+
publications {
78+
mavenJava(MavenPublication) {
79+
from components.java
80+
pom {
81+
name = "OpenTok Java SDK"
82+
artifactId = 'opentok-server-sdk'
83+
packaging = 'jar'
84+
description = "The OpenTok Java SDK lets you generate sessions and tokens for OpenTok applications. This version of the SDK also includes support for working with OpenTok 2.0 archives."
85+
url = "https://github.com/opentok/opentok-java-sdk"
10386
licenses {
10487
license {
105-
name 'MIT License'
106-
url 'http://www.opensource.org/licenses/mit-license'
88+
name = 'MIT License'
89+
url = "https://raw.github.com/opentok/opentok-java-sdk/main/LICENCE.txt"
10790
}
10891
}
109-
11092
developers {
11193
developer {
112-
id 'manasdpradhan'
113-
name 'Manas Pradhan'
114-
email 'manas@tokbox.com'
115-
organization 'Vonage.'
94+
id = "devrel"
95+
name = "Vonage Devrel"
96+
email = "devrel@vonage.com"
11697
}
11798
developer {
118-
id 'aoberoi'
119-
name 'Ankur Oberoi'
120-
email 'aoberoi@gmail.com'
121-
organization 'Vonage.'
99+
id = 'manasdpradhan'
100+
name = 'Manas Pradhan'
101+
email = 'manas@tokbox.com'
102+
organization = 'Vonage'
122103
}
104+
developer {
105+
id = 'aoberoi'
106+
name = 'Ankur Oberoi'
107+
email = 'aoberoi@gmail.com'
108+
organization = 'Vonage'
109+
}
110+
developer{
111+
id = 'slorello89'
112+
name = 'Steve Lorello'
113+
email = 'steve.lorello@vonage.com'
114+
organization = 'Vonage'
115+
}
116+
}
117+
scm {
118+
connection = "scm:git@github.com/opentok/opentok-java-sdk"
119+
developerConnection = "scm:git@github.com/opentok/opentok-java-sdk"
120+
url = "http://github.com/opentok/opentok-java-sdk"
121+
}
122+
123+
issueManagement{
124+
system = "GitHub"
125+
url = "https://http://github.com/opentok/opentok-java-sdk"
123126
}
124127
}
125128
}
126129
}
130+
repositories{
131+
maven{
132+
def releasesRepoUrl = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
133+
def snapshotsRepoUrl = uri("https://oss.sonatype.org/content/repositories/snapshots/")
134+
credentials.username(System.getenv("OSS_USERNAME"))
135+
credentials.password(System.getenv("OSS_PASSWORD"))
136+
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
137+
}
138+
}
139+
}
140+
141+
signing {
142+
def signingKey = System.getenv("signingKey")
143+
def signingPassword = System.getenv("signingPassword")
144+
useInMemoryPgpKeys(signingKey, signingPassword)
145+
sign publishing.publications.mavenJava
127146
}
128147

129148
test {
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
#Mon Apr 05 14:22:26 EDT 2021
2+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip
13
distributionBase=GRADLE_USER_HOME
24
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
4-
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6+
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)