Kodeloka
  1. Kodeloka
  2. Kelas Git & CI/CD
  3. Materi

TeamCity · Modul 16 dari 20

CI/CD with TeamCity - DevOps Tooling

Pengenalan JetBrains TeamCity, arsitektur Build Server, Build Agents, Build Configuration, dan integrasi VCS.

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.

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()
        }
    }
})