JetBrains annonce la sortie de TeamCity 2021.1
qui rend l'intégration continue encore plus rapide et hautement disponible

TeamCity 2021.1 est disponible et apporte de tout nouveaux build runners pour Kotlin et Node.js. Il améliore aussi l'intégration avec Perforce et fournit toute une série de nouveaux workflows en permettant l'utilisation de déclencheurs de builds définissant les paramètres à utiliser dans les scripts de build. Les utilisateurs particulièrement exigeants en matière de disponibilité apprécieront la nouvelle option qui permet de transférer les responsabilités du serveur principal aux nœuds secondaires pendant l'exécution, avec une indisponibilité minimale. JetBrains a également effectué de nombreuses mises à jour de l'interface utilisateur Sakura afin de rendre le travail avec TeamCity encore plus facile, rapide et agréable.

Build et test

Build runner pour Kotlin script

Ces dernières années, l'utilisation de Kotlin a connu une croissance importante. JetBtrains a notamment constaté qu'il est fréquemment utilisé pour configurer des "pipelines as code" (configurer les étapes de déploiement via du code), mais aussi pour écrire des scripts de build.

Le nouveau build runner de Kotlin script est une option pertinente pour de nombreux scénarios. Il est multiplateforme, prend en charge l'importation de bibliothèques externes et peut s'utiliser dans la plupart des cas dans lesquels vous utilisez actuellement le build runner de ligne de commande.

Build runner pour Node.js

Aujourd'hui, JavaScript est le langage de programmation le plus populaire au monde, et il le doit en grande partie à Node.js, le runtime JavaScript leader. TeamCity 2021.1 apporte un nouveau build runner Node.js qui fournit une prise en charge de premier ordre pour la création de vos applications web. Il prend en charge npm et yarn, peut travailler avec des registres publics et privés, et détecte automatiquement les étapes de build en fonction du package.json. Comme avec tous les autres build runners de TeamCity, vous pouvez exécuter vos builds dans un conteneur Docker et les paramétrer en utilisant une configuration basée sur Kotlin.

Vidage de threads pour les builds basées sur Docker

TeamCity a toujours permis d'afficher les vidages de threads des processus exécutés sur les agents de build. Cependant, si votre build était exécuté dans Docker, cela pouvait être difficile. La version 2021.1 vous permet de visualiser les vidages de threads des processus Java exécutés dans des conteneurs Docker sur n'importe quel système d'exploitation. Pour les conteneurs Docker basés sur Linux, vous pouvez également voir la liste des autres commandes en cours d'exécution et leurs paramètres.

En plus des nouveaux build runners pour Kotlin et Node.js et des améliorations apportées à la visualisation du vidage de thread, la nouvelle version propose des ReSharper Inspections améliorées et des build runners Duplicates Finder qui sont désormais multiplateformes et peuvent s'exécuter dans Docker.

Perforce

TeamCity a toujours été réputé pour sa capacité à s'adapter aux projets de grande envergure comportant de nombreux fichiers volumineux, ainsi que pour son excellente intégration avec Perforce. La version 2021.1 fait passer l'intégration de Perforce à un niveau supérieur grâce à plusieurs nouvelles fonctionnalités :

  • Configuration des hooks de commit améliorée. Vous pouvez désormais configurer des hooks de commit afin que vos builds se déclenchent automatiquement en installant un seul et unique script sur le serveur Perforce.
  • Nettoyage des espaces de travail Perforce. TeamCity propose désormais un nettoyage manuel et automatisé des espaces de travail Perforce créés par le serveur TeamCity.
  • Prise en charge des spécifications ChangeView. Vous pouvez désormais limiter la portée de la racine VCS à des révisions particulières grâce aux spécifications ChangeView. L'utilisation de la syntaxe @revision dans les déclarations d'importation des définitions de flux Perforce est maintenant prise en charge.

Renforcement de la sécurité de votre CI

JetBrains dit accorder une grande attention aux fonctionnalités de sécurité de TeamCity et continue à les améliorer à chaque nouvelle version.

Amélioration de la sécurité grâce à des jetons d'accès affinés

La version 2021.1 vous permet de générer des jetons d'accès limités en termes de durée et de portée. Vous pouvez désormais accorder aux scripts qui interagissent avec l'API TeamCity juste assez de droits pour faire leur travail, sans craindre de leur donner trop de pouvoir. Et vous n'avez plus à vous rappeler de révoquer leur accès une fois qu'ils ont terminé.


Autorisation séparée pour les builds personnels avec correctifs

TeamCity propose maintenant une autorisation séparée pour l'exécution de builds personnels avec des correctifs personnalisés. Vous pouvez ainsi vous assurer que tout le code exécuté sur les agents de build provient uniquement d'utilisateurs de confiance.

Alliance de performance et de haute configurabilité

Paramètres définis par déclencheur

TeamCity 2021.1 ouvre de nouvelles perspectives de contrôle sur vos configurations de build. Vos déclencheurs de build peuvent désormais définir des paramètres personnalisés pour activer ou désactiver des étapes de build ou modifier ce qui se passe dans vos scripts de build. Par exemple, dorénavant vos builds nocturnes peuvent être différents des builds déclenchés par les check-ins de contrôle de version, sans avoir à créer une nouvelle configuration de build.

Clones superficiels Git

La création de builds sur des agents cloud est encore plus rapide. À partir de la version 2021.1, vous pouvez activer le clonage superficiel Git et consulter la dernière version du code source avec depth=1, sans créer de miroirs Git locaux. Une amélioration particulièrement utile pour les entreprises qui créent des agents de build dans le cloud propres et de courte durée pour chaque build.

Prise en charge de plusieurs déclencheurs VCS

Vous n'êtes plus limité à un seul déclencheur VCS par configuration de build, car TeamCity permet maintenant d'ajouter plusieurs déclencheurs avec des règles et des filtres de branche différents. Par exemple, votre branche de version peut être générée immédiatement après le commit, mais toutes les autres branches devront attendre leur propre période de silence du VCS.

Désactivation des modifications via l'interface utilisateur

Dans TeamCity, vous pouvez configurer des pipelines CI/CD via l'interface utilisateur, via des configurations Kotlin ou avec une combinaison des deux. Toutefois, mélanger plusieurs méthodes peut entraîner une grande confusion et des problèmes de versions. Pour assurer le maintien de la prévisibilité et de la facilité de gestion de vos configurations, JetBrains a ajouté une nouvelle option qui permet aux administrateurs d'interdire la modification des configurations du projet via l'interface utilisateur si elles sont configurées à l'aide de Kotlin.

Haute disponibilité encore plus élevée

Un CI hautement disponible est souvent essentiel aux workflows des grandes entreprises. TeamCity 2021.1 renforce les configurations multinœuds avec trois nouvelles fonctionnalités.

Changer la responsabilité du nœud principal pendant l'exécution

Plus la configuration CI/CD est grande, plus il est important d'effectuer régulièrement des tâches de maintenance du serveur. Néanmoins, l'arrêt du serveur pour cause de maintenance se traduit aussi par une baisse temporaire de la productivité de votre équipe. Pour permettre une haute disponibilité et minimiser les temps d'arrêt pendant la maintenance, TeamCity 2021.1 introduit la nouvelle responsabilité Main TeamCity node qui peut être transférée à un nœud secondaire pendant l'exécution. Dans ce cas, le serveur secondaire devient le nœud principal et reçoit automatiquement toutes les responsabilités du nœud principal, y compris le traitement des builds et la gestion des agents de build.

Contrôle du nombre de builds sur les nœuds secondaires

TeamCity vous permet désormais de définir la proportion de builds qui seront traitées par ses nœuds. Vous pouvez ainsi vous assurer que chaque serveur gère juste la bonne quantité de la charge de traitement de la build et n'outrepasse pas ses capacités.


Recherche avec Elasticsearch

Auparavant, chaque nœud de TeamCity avait son propre index de recherche, stocké localement. La version 2021.1 fournit un moteur de recherche alternatif basé sur Elasticsearch. Il dispose d'un index distribué, consomme moins d'espace disque et fonctionne plus efficacement dans les installations multinœuds.

Plus de rapidité, efficacité, robustesse et esthétique

JetBrains continue à améliorer l'interface utilisateur Sakura. Elle est plus rapide, plus facile à utiliser et prend en charge tous les workflows de l'interface utilisateur classique. La nouvelle version fournit aussi, entre autres, un Assistant d'interface utilisateur pour aider les nouveaux utilisateurs à naviguer dans l'interface, des améliorations du widget Build Status, des mises à jour de la page Build Overview, des vues de la hiérarchie des projets.


Ce ne sont là que quelques-unes des nombreuses nouvelles fonctionnalités de TeamCity 2021.1. Pour consulter la liste complète des changements, veuillez vous reporter à la documentation TeamCity.

Téléchargez la dernière version de TeamCity