7

J'aimerais savoir comment fonctionne la fonction de validation différée sur les serveurs CI qui ne sont pas intégrés aux référentiels de contrôle source. Conceptuellement, le processus fonctionne comme suit:Comment un "délai de validation" fonctionne-t-il avec les référentiels de contrôle source et les serveurs CI?

  1. Vérifiez dans le code change
  2. serveur CI construit les changements
  3. Si la génération passe, le code est déterminé à la source du référentiel de contrôle
  4. Si la génération échoue, le code n'est pas validé dans le référentiel de contrôle source

La plupart des serveurs CI fonctionnent en interrogeant les référentiels de contrôle source pour les modifications, puis en extrayant le code. Ainsi, dans le scénario de validation différée, les développeurs vérifient-ils leur code dans le serveur CI plutôt que dans un véritable référentiel de contrôle de source, puis le serveur CI transmet le code au référentiel? Ou alternativement les serveurs de CI annulent-ils juste les changements si la construction échoue?

Je pense en particulier à deux systèmes d'intégration continue. Team Foundation Server proposera cette fonctionnalité dans la prochaine version, mais cela est logique car Team Build (système CI) dans TFS est intégré au référentiel de contrôle de source. Cependant, dans le cas de Team City, TC peut se connecter à n'importe quel système de contrôle de source et n'est pas nécessairement intégré ou même sur le même serveur que le référentiel de contrôle de source. Comment ça marche?

Modifier: Ouverture d'une prime sur cette question dans l'espoir que je peux obtenir plus de réponses possibles.

Répondre

2

Généralement, vous devez utiliser un outil de ligne de commande ou un plugin IDE qui vous permet de soumettre votre code au serveur CI. L'outil regroupe vos modifications avec toutes les métadonnées pertinentes du projet/référentiel/utilisateur, lance une construction et la valide si tout se passe bien.

Dans le cas de TeamCity, il semble que le serveur présente en fait un message d'approbation à votre ordinateur (from what I can tell from the diagram), il s'engage à partir de là — probablement de sorte que vous n'avez pas besoin d'avoir chacun des informations d'identification de SCM de l'utilisateur — qui peut être complexe si vous utilisez des clés privées SSH, etc. — sur votre serveur TC.

Mais les serveurs CI peuvent s'intégrer à peu près n'importe quel système SCM, quel que soit l'emplacement du serveur — il vous suffit de lui donner les informations d'identification correctes pour obtenir un accès (généralement en lecture seule).