Files
llm-proxy/build.gradle.kts
subochev 334015a2bd
Build LLM Proxy / Build and push (release) Successful in 44s
test: покрытие think_tags — non-stream, SSE-чанки, обвязка стрима
- transformThinkMessage/transformThinkChunk/streamSseWithThinkTags сделаны internal
  ради тестируемости (логика не менялась)
- +24 теста: ThinkTagTransformTest (9), ThinkTagChunkTest (8), ThinkTagStreamTest (7)
- ConfigLogicTest: ассерт приоритета источников был неразличающим (провайдер и
  апстрим давали одинаковый результат) — заменён на различающиеся значения
- kotlinx-coroutines-test для тестов каналов ktor
- Gitea Actions: шаг Run tests (jvmTest) — раньше CI тесты не гонял вовсе
- TESTING.md: что покрыто + мутационная приёмка
2026-09-11 17:40:06 +03:00

62 lines
1.8 KiB
Kotlin

plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.kotlinSerialization)
}
group = "pw.binom"
version = "0.1.0"
repositories {
mavenCentral()
}
kotlin {
jvm()
linuxX64()
sourceSets {
val commonMain by getting {
dependencies {
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.cio)
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.kotlinx.serialization.json)
implementation(libs.yamlkt)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.datetime)
implementation(libs.kotlinx.io.core)
}
}
val commonTest by getting {
dependencies {
implementation(libs.kotlin.test)
implementation(libs.kotlinx.coroutines.test)
}
}
val jvmMain by getting {
dependencies {
runtimeOnly(libs.logback.classic)
}
}
val jvmTest by getting {
dependencies {
implementation(libs.junit.jupiter)
runtimeOnly(libs.junit.platform.launcher)
}
}
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.register<Jar>("fatJar") {
archiveFileName.set("llm-proxy.jar")
manifest { attributes("Main-Class" to "pw.binom.llmproxy.MainKt") }
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from(kotlin.jvm().compilations["main"].output)
from(configurations.getByName("jvmRuntimeClasspath").map { if (it.isDirectory) it else zipTree(it) })
}