Prise en charge des caractères génériques et des expressions conditionnelles dans les fichiers de pipeline YAML

Dans ce sprint, nous avons inclus la prise en charge des caractères génériques et des expressions conditionnelles dans les fichiers de pipeline YAML. En outre, nous avons effectué plusieurs mises à jour des images hébergées par Azure Pipelines.

Pour plus d’informations, consultez les descriptions de fonctionnalités suivantes.

Azure Pipelines

Azure Repos

Azure Pipelines

Nouvelles expressions conditionnelles YAML

L’écriture d’expressions conditionnelles dans des fichiers YAML s’est simplement facilitée avec l’utilisation des expressions et ${{ elseif }} des ${{ else }} expressions. Vous trouverez ci-dessous des exemples d’utilisation de ces expressions dans des fichiers de pipelines YAML.

steps:
- script: tool
  env:
    ${{ if parameters.debug }}:
      TOOL_DEBUG: true
      TOOL_DEBUG_DIR: _dbg
    ${{ else }}:
      TOOL_DEBUG: false
      TOOL_DEBUG_DIR: _dbg
variables:
  ${{ if eq(parameters.os, 'win') }}:
    testsFolder: windows
  ${{ elseif eq(parameters.os, 'linux') }}:
    testsFolder: linux
  ${{ else }}:
    testsFolder: mac

Prise en charge des caractères génériques dans les filtres de chemin

Les caractères génériques peuvent être utilisés lors de la spécification de branches d’inclusion et d’exclusion pour les déclencheurs CI ou PR dans un fichier YAML de pipeline. Toutefois, ils ne peuvent pas être utilisés lors de la spécification de filtres de chemin d’accès. Par exemple, vous ne pouvez pas inclure tous les chemins qui correspondent src/app/**/myapp*. Cela a été souligné comme un inconvénient par plusieurs clients. Cette mise à jour remplit cet écart. À présent, vous pouvez utiliser des caractères génériques (**ou *?) lors de la spécification de filtres de chemin d’accès.

Prise en charge de plusieurs états dans Bitbucket

Azure Pipelines s’intègre aux référentiels Bitbucket et prend en charge les déclencheurs CI et PR. Vous pouvez configurer plusieurs pipelines à partir d’un dépôt Bitbucket unique. Toutefois, lorsque ces pipelines étaient terminés, vous ne pouviez voir qu’un seul état dans Bitbucket. Nous avons entendu des commentaires de la Communauté des développeurs demandant d’afficher l’état de chaque pipeline séparément dans Bitbucket. Avec cette mise à jour, nous avons mis à jour nos appels d’API vers Bitbucket et transmettons des informations supplémentaires sur le nom du pipeline.

État de la build

Autoriser les contributeurs à ignorer les commentaires des demandes de tirage avant la validation de build

Lors de l’utilisation d’Azure Pipelines avec des référentiels GitHub, nous vous recommandons de ne pas exécuter automatiquement un pipeline de validation de demande de tirage pour les contributions reçues d’un dépôt forked. La meilleure pratique consiste à d’abord avoir l’un des collaborateurs du référentiel à examiner la modification, puis à ajouter un commentaire à la demande de tirage pour déclencher le pipeline. Vous pouvez configurer ces paramètres en sélectionnant le menu Déclencheurs (pour les pipelines YAML) ou l’onglet Déclencheurs (pour les pipelines de build classiques) dans l’éditeur web de pipeline. Au lieu d’exiger que chaque demande de tirage d’un fork soit d’abord examinée par un membre de l’équipe, vous pouvez également appliquer cette stratégie uniquement sur les contributions provenant de membres non d’équipe.

Avec cette mise à jour, nous vous permet de ne pas demander un commentaire de demande de tirage des contributions reçues par n’importe quel contributeur. En tant que membre non-équipe, lorsque vous créez une duplication et créez une demande de tirage en amont, vous n’êtes pas considéré comme un contributeur au référentiel en amont tant que votre demande de tirage n’est pas fusionnée. Une fois votre demande de tirage fusionnée, vous serez considéré comme un contributeur. En sélectionnant la nouvelle option indiquée ci-dessous, lorsqu’un membre non-équipe envoie une demande de tirage à partir d’un fork pour la première fois, une personne de votre équipe devra examiner la demande de tirage et ajouter un commentaire pour déclencher le pipeline. Toutefois, une fois la demande de tirage fusionnée, toutes les contributions supplémentaires apportées par ce membre non-équipe déclenchent directement le pipeline sans attendre un commentaire de demande de tirage.

Exiger le commentaire d’un membre de l’équipe avant de générer une demande de tirage

Windows Server 2022 avec Visual Studio 2022 est maintenant disponible sur les agents hébergés par Microsoft (préversion)

Windows Server 2022 et Visual Studio Enterprise 2022 Preview sont désormais disponibles en préversion sur les agents hébergés par Microsoft. Vous pouvez l’utiliser en faisant windows-2022 référence en tant qu’image dans votre pipeline.

pool:
  vmImage: 'windows-2022'

steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'
- task: VSBuild@1 # Visual Studio 2022 build
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: 'Any CPU'
    configuration: 'Release'

Lorsque vous référencez un pool windows-latest dans vos pipelines YAML, cela signifie toujours windows-2019 et non windows-2022, alors que celui-ci est en préversion.

L’image de pipeline Windows Server 2022 possède différents outils et versions d’outils par rapport à Windows Server 2019. Vous pouvez voir les détails dans le problème d’annonce logicielle et dans le référentiel de documentation virtual-environments.

Disponibilité générale de macOS 11 sur les agents hébergés par Microsoft

macOS 11 est désormais en disponibilité générale sur les agents hébergés par Microsoft. Vous pouvez l’utiliser en faisant macos-11 référence en tant qu’image dans votre pipeline.

pool:
  vmImage: macos-11

Suppression de l’image Ubuntu 16.04 sur les agents hébergés par Microsoft

Comme annoncé précédemment, nous allons supprimer l’image Ubuntu 16.04 des agents hébergés par Microsoft le 20 septembre 2021. Le support traditionnel de 5 ans d’Ubuntu 16.04 par Canonical a pris fin en avril 2021. Vous devez migrer des pipelines ubuntu-16.04 vers ubuntu-18.04 ou ubuntu-latest qui s’exécuteront sur Ubuntu 20.04 LTS.

Les builds qui utilisent Ubuntu-16.04 ont déjà un avertissement en cours de connexion. Pour vous assurer que tout le monde est au courant de ce changement, nous avons planifié 2 « brownouts » courts. Les builds Ubuntu 16.04 échouent pendant la période de brunout. Par conséquent, il est recommandé de migrer vos flux de travail avant le 6 septembre 2021.

Les brownouts sont planifiés pour les dates et heures suivantes (Notez que celles-ci ont été prolongées d’une heure à partir des heures annoncées précédemment) : 6 septembre 2021 2021 00 UTC – 10:00 UTC 14 septembre 2021 4:00 UTC – 10:00 UTC UTC

Azure Repos

Les nouvelles pages TFVC sont généralement disponibles

Nous avons mis à jour différentes pages dans Azure DevOps pour utiliser une nouvelle plateforme web dans le but de rendre l’expérience plus cohérente et plus accessible sur les différents services. Les pages TFVC ont été mises à jour pour utiliser la nouvelle plateforme web, et ces modifications ont été en préversion depuis plusieurs mois. Avec cette mise à jour, nous rendons les nouvelles pages TFVC en disponibilité générale. Avec cette mise à jour, vous ne verrez plus de fonctionnalité d’aperçu appelée « Nouvelles pages TFVC » dans leurs paramètres utilisateur.

Configurer les créateurs de branche pour qu’ils n’obtiennent pas d’autorisations de gestion sur leurs branches

Lorsque vous créez une branche, vous obtenez « Gérer les autorisations » sur cette branche. Cette autorisation vous permet de modifier les autorisations d’autres utilisateurs ou d’admettre des utilisateurs supplémentaires pour contribuer à cette branche. Par exemple, un créateur de branche peut utiliser cette autorisation pour permettre à un autre utilisateur externe d’apporter des modifications au code. Ils peuvent également autoriser un pipeline (identité de service de build) à modifier le code de cette branche. Dans certaines organisations ayant des exigences de conformité plus élevées, les utilisateurs ne doivent pas être en mesure d’apporter ces modifications.

Avec cette mise à jour, vous pouvez configurer n’importe quel référentiel de votre projet d’équipe et restreindre les créateurs de branche d’obtenir l’autorisation « Gérer les autorisations ». Pour ce faire, accédez aux paramètres du projet, sélectionnez Référentiels, puis Paramètres de tous les référentiels ou référentiels spécifiques.

Tous les paramètres de référentiel

Ce paramètre est activé par défaut pour imiter le comportement existant. Toutefois, vous pouvez la désactiver si vous souhaitez utiliser cette nouvelle fonctionnalité de sécurité.

Empêcher les utilisateurs de duplication (fork) de voter sur leurs demandes de tirage en amont

Avec Azure Repos, les utilisateurs disposant d’une autorisation de « lecture » sur un référentiel peuvent fourcher le dépôt et apporter des modifications dans leur fourche. Pour soumettre une demande de tirage avec leurs modifications à l’amont, les utilisateurs ont besoin de l’autorisation « contribuer aux demandes de tirage » en amont. Toutefois, cette autorisation régit également qui peut voter sur les demandes de tirage (pull request) dans le référentiel en amont. Par conséquent, vous pouvez vous retrouver dans des situations où un utilisateur, qui n’est pas contributeur au référentiel, peut envoyer une demande de tirage (pull request) et la fusionner en fonction de la façon dont vous configurez les stratégies de branche.

Dans les organisations qui favorisent un modèle interne source, le fork-and-contribution est un modèle commun. Pour sécuriser et promouvoir davantage ce modèle, nous modifions l’autorisation de voter sur une demande de tirage de « contribuer aux demandes de tirage » pour « contribuer ». Toutefois, cette modification n’est pas effectuée par défaut dans toutes les organisations. Vous devez vous inscrire et sélectionner une nouvelle stratégie sur votre dépôt, appelée « Mode vote strict » pour changer cette autorisation. Nous vous recommandons de le faire si vous vous appuyez sur des duplications dans Azure Repos.

Paramètres du référentiel

Étapes suivantes

Notes

Ces fonctionnalités seront déployées au cours des deux à trois prochaines semaines.

Accédez à Azure DevOps et jetez un coup d’œil.

Comment fournir des commentaires

Nous aimerions savoir ce que vous pensez de ces fonctionnalités. Utilisez le menu Aide pour signaler un problème ou faire une suggestion.

Faire une suggestion

Vous pouvez également obtenir des conseils et répondre à vos questions par la communauté sur Stack Overflow.

Merci,

Aaron Hallberg