Files
PaperTrader/server/build.gradle.kts
T
2026-05-13 14:19:41 +02:00

105 lines
2.7 KiB
Kotlin

import org.gradle.kotlin.dsl.support.serviceOf
plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.ktor)
alias(libs.plugins.sqldelight)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.jib)
application
}
group = "win.tap_tap.papertrader"
application {
mainClass.set("win.tap_tap.papertrader.ApplicationKt")
val isDevelopment: Boolean = project.ext.has("development")
applicationDefaultJvmArgs = listOf("-Dio.ktor.development=$isDevelopment")
}
dependencies {
implementation(projects.shared)
implementation(libs.logback)
implementation(libs.ktor.serverCore)
implementation(libs.ktor.serverNetty)
implementation(libs.bundles.ktor)
implementation(libs.bundles.ktorServer)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.server.cors)
implementation(libs.sqlite.driver)
testImplementation(libs.ktor.serverTestHost)
testImplementation(libs.kotlin.testJunit)
}
allprojects {
version = "1.0.1"
}
tasks.register<Exec>("serverDockerBuild") {
group = "deployment"
dependsOn("buildFatJar")
workingDir = projectDir
commandLine("docker", "build", "-t", "papertrader-server", ".")
}
tasks.register("serverDockerPush") {
group = "deployment"
val version = project.version
val execOps = project.serviceOf<ExecOperations>()
doLast {
fun execute(args: List<String>) {
execOps.exec {
commandLine(args)
}
}
execute(listOf("docker", "tag", "papertrader-server", "taptap1/papertrader-server:$version"))
execute(listOf("docker", "tag", "papertrader-server", "taptap1/papertrader-server:latest"))
execute(listOf("docker", "push", "taptap1/papertrader-server:$version"))
execute(listOf("docker", "push", "taptap1/papertrader-server:latest"))
println("Pushed: papertrader-server:$version and papertrader-server:latest")
}
}
tasks.register("serverDockerDeploy") {
group = "deployment"
dependsOn("serverDockerBuild")
dependsOn("serverDockerPush")
}
tasks.named("serverDockerPush") {
mustRunAfter("serverDockerBuild")
}
//jib {
// from {
// image = "eclipse-temurin:23-jre-alpine"
// }
//
// to {
// image = "taptap1/papertrader-server"
// tags = setOf("latest", project.version.toString())
// }
//
// container {
// entrypoint = listOf("java", "-jar", "/app/paptertraderServer.jar")
// ports = listOf("8080")
// }
//}
ktor {
fatJar {
archiveFileName.set("papertraderServer.jar")
}
}
sqldelight {
databases {
register("Data") {
packageName.set("win.tap_tap.papertrader")
}
}
}