105 lines
2.7 KiB
Kotlin
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.1.0"
|
|
}
|
|
|
|
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")
|
|
}
|
|
}
|
|
} |