forked from mjfryc/mjaron-tinyloki-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
125 lines (113 loc) · 3.72 KB
/
build.gradle
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
123
124
125
plugins {
id 'java'
id 'maven-publish'
id "signing"
id 'org.barfuin.gradle.jacocolog' version '2.0.0'
}
group 'io.github.mjfryc'
version 'v0.3.7'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}
jacocoTestReport {
dependsOn test
reports {
csv.enabled true
}
}
test {
useJUnitPlatform()
finalizedBy jacocoTestReport
}
java {
withSourcesJar()
withJavadocJar()
toolchain {
languageVersion.set(JavaLanguageVersion.of(8))
}
}
project.plugins.withType(MavenPublishPlugin).all {
PublishingExtension publishing = project.extensions.getByType(PublishingExtension.class)
publishing.publications.withType(MavenPublication).all { mavenPublication ->
mavenPublication.pom {
name = "${project.group}:${project.name}"
description = name
url = "https://github.com/mjfryc/mjaron-tinyloki-java"
licenses {
license {
name = "MIT License"
url = "https://raw.githubusercontent.com/mjfryc/mjaron-tinyloki-java/main/LICENSE"
}
}
developers {
developer {
id = "mjfryc"
name = "Michał Jaroń"
email = "m.jaron@protonmail.com"
}
}
scm {
connection = "scm:git:https://github.com/mjfryc/mjaron-tinyloki-java"
developerConnection = "scm:git:git@github.com:mjfryc/mjaron-tinyloki-java.git"
url = "https://github.com/mjfryc/mjaron-tinyloki-java"
}
}
}
}
// Source: https://docs.github.com/en/actions/guides/publishing-java-packages-with-gradle
// Source: https://github.com/rwinch/gradle-publish-ossrh-sample
// Source: https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key
// Source: https://github.com/rwinch/gradle-publish-ossrh-sample
publishing {
println("Publishing: Package version: $version")
repositories {
maven {
name = "OSSRH"
url = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
credentials {
username = System.getenv("MAVEN_USERNAME")
password = System.getenv("MAVEN_PASSWORD")
}
}
maven {
name = "GitHubPackages"
url = "https://maven.pkg.github.com/mjfryc/mjaron-tinyloki-java"
credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
from(components.java)
}
}
}
def hasSigningKey = System.getenv("GPG_PASSWORD") != null && System.getenv("GPG_PRIVATE_KEY") != null
if (hasSigningKey) {
System.out.println("GPG key and password found. Signing maven publications.")
doSign(project)
} else {
System.out.println("GPG key or password not found. Signing is skipped.")
}
void doSign(Project project) {
println("Signing publications. All etries:")
publishing.publications.all {
println(" Publication: " + it.name)
}
project.signing {
required { project.gradle.taskGraph.hasTask("required") }
def signingKey = System.getenv("GPG_PRIVATE_KEY")
def signingPassword = System.getenv("GPG_PASSWORD")
useInMemoryPgpKeys(signingKey, signingPassword)
//sign configurations.archives
//sign publishing.publications.maven
sign publishing.publications.gpr
//sign project
}
}