TeamCity
Serveur d'intégration continue de JetBrains offrant automation des builds, tests et déploiements avec une interface intuitive et des pipelines configurables.
Mis à jour le 20 janvier 2026
TeamCity est une plateforme d'intégration continue et de déploiement continu développée par JetBrains. Reconnue pour son interface utilisateur élégante et sa configuration flexible, TeamCity permet aux équipes de développement d'automatiser leurs processus de build, de tests et de déploiement tout en offrant une visibilité complète sur l'état de leurs projets. La solution supporte nativement une large gamme de technologies et s'intègre parfaitement avec les outils de développement JetBrains.
Fondements
- Architecture serveur-agent permettant la distribution des builds sur plusieurs machines
- Configuration via interface graphique ou fichiers Kotlin DSL pour une approche Configuration as Code
- Système de build chains pour orchestrer des pipelines complexes avec dépendances
- Support natif de Docker, Kubernetes, et des principaux langages de programmation
- Gestion fine des permissions avec intégration LDAP/Active Directory
Avantages
- Interface utilisateur intuitive réduisant la courbe d'apprentissage pour les nouveaux utilisateurs
- Détection automatique des tests échoués avec historique et analyse des tendances
- Build parallelization et distribution intelligente des tâches pour optimiser les performances
- Intégration native avec IntelliJ IDEA, ReSharper et autres outils JetBrains
- Gestion avancée des artefacts avec nettoyage automatique et dépendances entre builds
- Version gratuite généreuse (100 configurations de build, 3 agents) pour les petites équipes
Exemple concret
Voici un exemple de configuration TeamCity en Kotlin DSL pour un projet Node.js avec déploiement automatique :
import jetbrains.buildServer.configs.kotlin.*
import jetbrains.buildServer.configs.kotlin.buildSteps.nodeJS
import jetbrains.buildServer.configs.kotlin.buildSteps.script
import jetbrains.buildServer.configs.kotlin.triggers.vcs
object BuildProject : BuildType({
name = "Build and Deploy API"
vcs {
root(DslContext.settingsRoot)
}
steps {
nodeJS {
name = "Install Dependencies"
shellScript = """
npm ci
""".trimIndent()
}
nodeJS {
name = "Run Tests"
shellScript = """
npm run test:coverage
npm run lint
""".trimIndent()
}
script {
name = "Build Docker Image"
scriptContent = """
docker build -t myapp:\$teamcity.build.id} .
docker tag myapp:\${teamcity.build.id} myapp:latest
""".trimIndent()
}
script {
name = "Deploy to Staging"
conditions {
equals("teamcity.build.branch", "develop")
}
scriptContent = """
kubectl set image deployment/myapp \
myapp=myapp:\${teamcity.build.id} \
-n staging
""".trimIndent()
}
}
triggers {
vcs {
branchFilter = "+:*"
enableQueueOptimization = false
}
}
features {
dockerSupport {
cleanupPushedImages = true
}
}
})Mise en œuvre
- Installer le serveur TeamCity (Docker, installation native, ou cloud) et configurer la base de données
- Déployer les build agents sur les machines dédiées ou conteneurs selon les besoins de parallélisation
- Créer un projet et définir la connexion VCS (Git, SVN, Mercurial, Perforce)
- Configurer les build steps via l'interface ou exporter en Kotlin DSL pour versioning
- Définir les triggers (VCS, schedule, dépendances) et les conditions d'exécution
- Configurer les agents requirements pour diriger les builds vers les agents appropriés
- Mettre en place les notifications (email, Slack, webhooks) et les intégrations
- Activer les features comme le versioning, les composite builds, et l'investigation automatique des échecs
Conseil pro
Utilisez les Meta-Runners de TeamCity pour créer des steps réutilisables à travers vos projets. Combinés avec Kotlin DSL et le versioning des configurations dans Git, vous obtenez une approche Infrastructure as Code maintenable et auditable, tout en conservant la simplicité de l'interface graphique pour les ajustements rapides.
Outils associés
- JetBrains Space pour la collaboration complète (VCS, CI/CD, gestion de projet)
- YouTrack pour l'intégration native des issues et le tracking des changements
- Artifactory ou Nexus pour la gestion centralisée des artefacts
- SonarQube pour l'analyse de qualité de code intégrée aux pipelines
- Octopus Deploy pour des scénarios de déploiement avancés
- Prometheus et Grafana pour le monitoring des performances des builds
TeamCity se distingue par son équilibre unique entre puissance et facilité d'utilisation, en faisant un choix privilégié pour les organisations cherchant à industrialiser leur livraison logicielle sans sacrifier la productivité des développeurs. Sa capacité à gérer des pipelines complexes tout en restant accessible aux équipes de toutes tailles en fait une solution de CI/CD mature et éprouvée, particulièrement adaptée aux environnements polyglotes nécessitant flexibilité et contrôle granulaire.
