[ci-skip] Setup repo for api publishing

This commit is contained in:
jmp
2020-12-20 00:21:38 -08:00
parent 26b0736149
commit 2fd92fe308
7 changed files with 28 additions and 11 deletions

View File

@@ -1,11 +1,13 @@
plugins {
`java-library`
`maven-publish`
toothpick
}
toothpick {
forkName = "Purpur"
groupId = "net.pl3x.purpur"
forkUrl = "https://github.com/pl3xgaming/Purpur"
val versionTag = System.getenv("BUILD_NUMBER")
?: "\"${gitCmd("rev-parse", "--short", "HEAD").output}\""
forkVersion = "git-$forkName-$versionTag"
@@ -15,6 +17,8 @@ toothpick {
nmsRevision = "R0.1-SNAPSHOT"
upstream = "Paper"
upstreamBranch = "origin/master"
server {
project = project(":$forkNameLowercase-server")
patchesDir = rootProject.projectDir.resolve("patches/server")
@@ -39,4 +43,9 @@ subprojects {
targetCompatibility = JavaVersion.VERSION_1_8
withSourcesJar()
}
publishing.repositories.maven {
url = uri("https://repo.pl3x.net/snapshots")
credentials(PasswordCredentials::class)
}
}

View File

@@ -18,6 +18,8 @@ import org.gradle.kotlin.dsl.create
import org.gradle.kotlin.dsl.get
import org.gradle.kotlin.dsl.getValue
import org.gradle.kotlin.dsl.getting
import java.text.SimpleDateFormat
import java.util.Date
internal fun Project.configureSubprojects() {
subprojects {
@@ -33,7 +35,7 @@ internal fun Project.configureSubprojects() {
from(components["java"])
pom {
name.set(project.name)
url.set("https://github.com/pl3xgaming/Purpur")
url.set(toothpick.forkUrl)
}
}
}
@@ -67,8 +69,7 @@ private fun Project.configureServerProject() {
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
"Implementation-Version" to toothpick.forkVersion,
"Implementation-Vendor" to java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
.format(java.util.Date()),
"Implementation-Vendor" to SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(Date()),
"Specification-Title" to "Bukkit",
"Specification-Version" to "${project.version}",
"Specification-Vendor" to "Bukkit Team"

View File

@@ -32,10 +32,8 @@ fun DependencyHandlerScope.loadDependencies(project: Project) {
val groupId = dependencyElem.search("groupId").first().textContent
val artifactId = dependencyElem.search("artifactId").first().textContent
val version = dependencyElem.search("version").first().textContent.applyReplacements(
mapOf(
"project.version" to "${project.toothpick.minecraftVersion}-${project.toothpick.nmsRevision}",
"minecraft.version" to project.toothpick.minecraftVersion
)
"project.version" to project.version.toString(),
"minecraft.version" to project.toothpick.minecraftVersion
)
val scope = dependencyElem.search("scope").firstOrNull()?.textContent
val classifier = dependencyElem.search("classifier").firstOrNull()?.textContent

View File

@@ -9,6 +9,7 @@ open class ToothpickExtension(objects: ObjectFactory) {
lateinit var forkName: String
val forkNameLowercase
get() = forkName.toLowerCase(Locale.ENGLISH)
lateinit var forkUrl: String
lateinit var forkVersion: String
lateinit var groupId: String
lateinit var minecraftVersion: String
@@ -18,6 +19,12 @@ open class ToothpickExtension(objects: ObjectFactory) {
lateinit var upstream: String
val upstreamLowercase
get() = upstream.toLowerCase(Locale.ENGLISH)
lateinit var upstreamBranch: String
var paperclipName: String = ""
get(): String = if (field.isEmpty()) {
"$forkNameLowercase-paperclip.jar"
} else "$field.jar"
lateinit var serverProject: ToothpickSubproject
fun server(receiver: ToothpickSubproject.() -> Unit) {

View File

@@ -57,7 +57,9 @@ fun Project.bashCmd(
): CmdResult =
cmd("bash", "-c", *args, dir = dir, printOut = printOut)
internal fun String.applyReplacements(replacements: Map<String, String>): String {
internal fun String.applyReplacements(
vararg replacements: Pair<String, String>
): String {
var result = this
for ((key, value) in replacements) {
result = result.replace("\${$key}", value)

View File

@@ -32,8 +32,8 @@ internal fun Project.createPaperclipTask(
if (jenkins) paperclipCmd.add("-Dstyle.color=never")
ensureSuccess(cmd(*paperclipCmd.toTypedArray(), dir = paperclipDir, printOut = true))
val paperClip = paperclipDir.resolve("assembly/target/paperclip-${toothpick.minecraftVersion}.jar")
val destination = rootProjectDir.resolve("${toothpick.forkNameLowercase}-paperclip.jar")
val destination = rootProjectDir.resolve(toothpick.paperclipName)
paperClip.copyTo(destination, overwrite = true)
logger.lifecycle(">>> ${toothpick.forkNameLowercase}-paperclip.jar saved to root project directory")
logger.lifecycle(">>> ${toothpick.paperclipName} saved to root project directory")
}
}

View File

@@ -16,7 +16,7 @@ internal fun Project.createUpdateUpstreamTask(
group = taskGroup
doLast {
ensureSuccess(gitCmd("fetch", dir = upstreamDir, printOut = true))
ensureSuccess(gitCmd("reset", "--hard", "origin/master", dir = upstreamDir, printOut = true))
ensureSuccess(gitCmd("reset", "--hard", toothpick.upstreamBranch, dir = upstreamDir, printOut = true))
ensureSuccess(gitCmd("add", toothpick.upstream, dir = rootProjectDir, printOut = true))
ensureSuccess(gitCmd("submodule", "update", "--init", "--recursive", dir = upstreamDir, printOut = true))
}