TeamCity ist ein Build-Management- und CI/CD-Server ( Continuous Integration / Continuous Delivery ) von JetBrains . [ 2 ] TeamCity wurde erstmals am 2. Oktober 2006 veröffentlicht und unterstützt Entwicklungsteams bei der Automatisierung von Build-, Test- und Deployment-Prozessen für Softwareprojekte auf verschiedenen Plattformen und Technologien. [ 3 ] TeamCity basiert auf einem Freemium -Lizenzmodell mit einer kostenlosen Version, die bis zu 100 Build-Konfigurationen und drei Build-Agent-Lizenzen umfasst. Open-Source -Projekte können zudem komplett kostenlose Lizenzen anfordern. Für Enterprise-Funktionen ist eine kostenpflichtige Lizenz erforderlich.

Überblick

TeamCity dient als zentrale Plattform für DevOps- Praktiken und ermöglicht Teams die Implementierung von CI/ CD - Workflows. Das System überwacht Versionskontrollsysteme auf Änderungen und löst automatisch Builds, Tests und Deployments basierend auf konfigurierbaren Regeln und Triggern aus. Die webbasierte Oberfläche bietet umfassende Transparenz über Build-Status, Testergebnisse, Codequalitätsmetriken und Deployment-Pipelines. Die Plattform basiert auf Java und läuft als Serveranwendung, die lokal oder in Cloud-Umgebungen bereitgestellt werden kann. TeamCity unterstützt die verteilte Build-Verarbeitung durch seine Build-Agent-Architektur, wodurch Teams ihre CI/CD-Infrastruktur über mehrere Maschinen und Umgebungen skalieren können.

Hauptmerkmale

Gebäudemanagement

  • Flexible Build-Konfigurationen: Unterstützung für komplexe Build-Ketten mit Abhängigkeiten, paralleler Ausführung und bedingter Logik
  • Build-Vorlagen: Wiederverwendbare Konfigurationsvorlagen zur Standardisierung von Build-Prozessen in verschiedenen Projekten
  • Artefaktverwaltung: Integriertes Artefakt-Repository mit Versionierung, Bereinigungsrichtlinien und Abhängigkeitsauflösung
  • Build-Trigger: Mehrere Triggertypen, darunter VCS-Änderungen, zeitplanbasierte, abhängigkeitsbasierte und manuelle Trigger.
  • Build-Parameter: Konfigurierbare Parameter für umgebungsspezifische Builds und Deployments

Kontinuierliche Integration und Tests

  • Gated Commits: Eine Vorabvalidierung, die verhindert, dass Entwickler den Hauptzweig beschädigen, indem sie Builds für vorgeschlagene Änderungen ausführen, bevor diese committet werden.
  • Parallele Build-Ausführung: Verteilte Build-Verarbeitung über mehrere Build-Agenten für schnelleres Feedback
  • Testintegration: Native Unterstützung für gängige Testframeworks mit detaillierter Berichtsfunktion und Verlaufsprotokollierung
  • Codequalitätsanalyse: Integrierte Codeabdeckung , Codeinspektionen und Duplikaterkennung
  • Fehlerhafte Testerkennung: Automatische Identifizierung und Verfolgung unzuverlässiger Tests

Integration der Entwicklungsumgebung

  • IDE-Plugins: Native Integrationen mit IntelliJ IDEA , Eclipse , Visual Studio und anderen gängigen IDEs
  • Vorgetestete Commits: Entwickler können Änderungen lokal validieren, bevor sie diese ins Repository übertragen.
  • Echtzeitbenachrichtigungen: Statusbenachrichtigungen per E-Mail, Slack und anderen Kommunikationskanälen einrichten.
  • Persönliche Builds: Private Build-Validierung für einzelne Entwickler

Bereitstellungs- und Release-Management

Bereitstellungspipelines: Visueller Pipeline-Designer für komplexe Bereitstellungsworkflows Umgebungsmanagement: Unterstützung mehrerer Bereitstellungsumgebungen mit Promotion-Workflows Release-Management: Integration mit Bereitstellungstools und Cloud-Plattformen Rollback-Funktionen: Automatisierte Rollback-Mechanismen für fehlgeschlagene Bereitstellungen

Unterstützte Technologien

Programmiersprachen und Plattformen

Build-Tools und Paketmanager

Umfassende Sprachunterstützung:

  • Java und JVM-Sprachen (Scala, Groovy, Clojure)
  • .NET Framework und .NET Core (C#, VB.NET, F#)
  • JavaScript und Node.js
  • Python
  • Rubin
  • Gehen
  • C++ und C
  • PHP
  • Schnell
  • Kotlin

Build-Tools & Paketmanager Wichtige Build-Engines:

  • Maven (Java-Ökosystem)
  • Gradle (Java/Android-Ökosystem)
  • MSBuild (.NET-Ökosystem)
  • Apache Ant (Java-Ökosystem)

Spieleentwicklungs-Engines

  • Unity (C#-Skripting)
  • Unreal Engine (C++, Blueprint visuelles Scripting)
  • Godot (GDScript, C#, C++)
  • GameMaker Studio (GML)
  • Konstrukt
  • Cocos2d (C++, JavaScript, Lua)
  • Benutzerdefinierte Spiel-Engines und Frameworks

Paketmanager:

  • npm und Yarn (JavaScript/Node.js)
  • NuGet (.NET-Ökosystem)
  • pip (Python)
  • RubyGems (Rubin)

Zusätzliche Unterstützung für den Build

TeamCity bietet außerdem native Unterstützung für:

  • Docker-Containerisierung
  • Kubernetes-Bereitstellungen
  • Verschiedene Testframeworks für alle unterstützten Sprachen
  • Codeabdeckungstools zur Qualitätsanalyse
  • Werkzeuge zur statischen Codeanalyse

Versionskontrollsysteme

TeamCity unterstützt die umfassende Integration mit gängigen Versionskontrollsystemen :

Architektur

TeamCity verwendet eine verteilte Architektur, die aus Folgendem besteht:

  • TeamCity Server: Zentrale Verwaltungskomponente, die die Weboberfläche hostet, Konfigurationen verwaltet und Builds koordiniert.
  • Build-Agenten: Verteilte Worker, die Build-Aufgaben ausführen und die Ergebnisse an den Server zurückmelden.
  • Datenbank: Permanenter Speicher für Build-Verlauf, Konfigurationen und Metadaten
  • Artefaktspeicher: Repository für Build-Ausgaben, Abhängigkeiten und Bereitstellungspakete

Diese Architektur ermöglicht horizontale Skalierung und unterstützt hybride Cloud-Bereitstellungen.

Vorteile

Für Entwicklungsteams

Schnellere Feedbackschleifen: Sofortige Benachrichtigung über Build-Fehler und Testergebnisse. Qualitätssicherung: Automatisierte Codequalitätsprüfungen und umfassende Testberichte. Zusammenarbeit: Gemeinsamer Einblick in Projektstatus und Build-Historie. Entwicklerproduktivität: IDE-Integration und Pre-Commit-Validierung reduzieren Kontextwechsel.

für Organisationen

Risikominimierung: Automatisierte Tests und Bereitstellungsvalidierung minimieren Produktionsprobleme. Compliance: Audit-Trails, Zugriffskontrollen und Bereitstellungsverfolgung unterstützen regulatorische Anforderungen. Kosteneffizienz: Reduzierter manueller Aufwand bei Build- und Bereitstellungsprozessen. Skalierbarkeit: Verteilte Architektur unterstützt wachsende Entwicklungsteams und komplexe Projekte.

Vergleich mit Wettbewerbern

TeamCity konkurriert mit anderen CI/CD-Plattformen wie Jenkins , GitLab CI/CD, GitHub Actions, Azure DevOps und CircleCI .

Zu den wichtigsten Unterscheidungsmerkmalen gehören: Benutzererfahrung: Intuitive Weboberfläche mit umfangreichen Anpassungsmöglichkeiten; JetBrains-Ökosystem: Tiefe Integration mit JetBrains-Entwicklungstools; Unternehmensfunktionen: Erweiterte Sicherheits-, Compliance- und Verwaltungsfunktionen; Hybridbereitstellung: Flexible Bereitstellungsoptionen vor Ort und in der Cloud

Lizenzierung

TeamCity bietet verschiedene Lizenzstufen an:

Professionell: Kostenlos für bis zu 100 Build-Konfigurationen und 3 Build-Agenten. Enterprise: Kommerzielle Lizenz mit unbegrenzter Anzahl an Build-Konfigurationen und Agenten. Open Source: Kostenlose Lizenzen für qualifizierte Open-Source-Projekte. Akademisch: Bildungslizenzen für Schulen und Universitäten.

Siehe auch

Referenzen

Offizielle Website TeamCity-DokumentationTeamCity-Blog