1. Arsitektur JetBrains TeamCity
TeamCity terdiri dari dua komponen utama:
- TeamCity Server: Server pusat yang mengelola antarmuka web UI, mengontrol pemicu VCS, menyimpan riwayat build, dan mendistribusikan tugas ke Build Agents.
- Build Agent: Mesin pekerja terpisah (Worker) yang mengeksekusi langkah-langkah kompilasi, testing, dan deployment secara aktual.
⚡ Keunggulan Utama TeamCity:
Mendukung Kotlin DSL (Domain Specific Language) untuk mengonfigurasi seluruh pipeline sebagai kode (Pipeline-as-Code) dengan tipe data aman (type-safe) dan autocompletion penuh di IDE IntelliJ.
Mendukung Kotlin DSL (Domain Specific Language) untuk mengonfigurasi seluruh pipeline sebagai kode (Pipeline-as-Code) dengan tipe data aman (type-safe) dan autocompletion penuh di IDE IntelliJ.
2. Konfigurasi TeamCity via Kotlin DSL
.teamcity/settings.kts
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
version = "2024.03"
project {
buildType(BuildAndTest)
}
object BuildAndTest : BuildType({
name = "Build & Test Application"
vcs {
root(DslContext.settingsRoot)
}
steps {
script {
name = "Run Unit Tests"
scriptContent = """
mvn clean test
""".trimIndent()
}
script {
name = "Package Artifact"
scriptContent = """
mvn package -DskipTests
""".trimIndent()
}
}
})